@@ -150,42 +150,28 @@ public function buildConfig(array $params, StatusMessage $status): string
150150 $ config [] = 'ctrl_interface_group=0 ' ;
151151 $ config [] = 'auth_algs=1 ' ;
152152
153- $ mappings = getDefaultNetValue ('hostapd ' , 'mappings ' , 'all ' ) ?? [];
154-
155- $ wpa = isset ($ params ['wpa ' ]) ? $ params ['wpa ' ] : 'none ' ;
156-
157- $ ieee80211w = null ;
158- if (isset ($ params ['80211w ' ]) && $ params ['80211w ' ] !== '' ) {
159- $ ieee80211w = (string )$ params ['80211w ' ];
160- } elseif (!empty ($ mappings ['ieee80211w_wpa ' ]) && isset ($ mappings ['ieee80211w_wpa ' ][(string )$ wpaCode ])) {
161- $ ieee80211w = (string )$ mappings ['ieee80211w_wpa ' ][(string )$ wpaCode ];
153+ $ wpa = $ params ['wpa ' ];
154+ $ wpa_key_mgmt = 'WPA-PSK ' ;
155+
156+ if ($ wpa == 4 ) {
157+ $ config [] = 'ieee80211w=1 ' ;
158+ $ wpa_key_mgmt = 'WPA-PSK WPA-PSK-SHA256 SAE ' ;
159+ $ wpa = 2 ;
160+ } elseif ($ wpa == 5 ) {
161+ $ config [] = 'ieee80211w=2 ' ;
162+ $ wpa_key_mgmt = 'SAE ' ;
163+ $ wpa = 2 ;
162164 }
163165
164- if ($ ieee80211w !== null && $ ieee80211w !== '' && $ ieee80211w !== '0 ' ) {
165- $ config [] = 'ieee80211w= ' . $ ieee80211w ;
166- }
167-
168- $ wpa_key_mgmt = null ;
169- if (!empty ($ params ['wpa_key_mgmt ' ])) {
170- $ wpa_key_mgmt = $ params ['wpa_key_mgmt ' ];
171- } elseif (!empty ($ mappings ['wpa_key_mgmt ' ]) && isset ($ mappings ['wpa_key_mgmt ' ][(string )$ wpaCode ])) {
172- $ wpa_key_mgmt = $ mappings ['wpa_key_mgmt ' ][(string )$ wpaCode ];
173- } elseif ($ wpaCode !== 'none ' ) {
174- // fallback sensible default
166+ if ($ params ['80211w ' ] == 1 ) {
167+ $ config [] = 'ieee80211w=1 ' ;
175168 $ wpa_key_mgmt = 'WPA-PSK ' ;
169+ } elseif ($ params ['80211w ' ] == 2 ) {
170+ $ config [] = 'ieee80211w=2 ' ;
171+ $ wpa_key_mgmt = 'WPA-PSK-SHA256 ' ;
176172 }
177173
178- if ($ wpa_key_mgmt !== null ) {
179- $ config [] = 'wpa_key_mgmt= ' . $ wpa_key_mgmt ;
180- }
181-
182- $ wpa_numeric = $ wpa ;
183- if (!empty ($ mappings ['wpa_numeric ' ]) && isset ($ mappings ['wpa_numeric ' ][(string )$ wpa ])) {
184- $ wpa_numeric = (int )$ mappings ['wpa_numeric ' ][(string )$ wpa ];
185- } else {
186- // ensure int or none
187- $ wpa_numeric = ($ wpa === 'none ' ) ? 'none ' : (int )$ wpa ;
188- }
174+ $ config [] = 'wpa_key_mgmt= ' . $ wpa_key_mgmt ;
189175
190176 if (!empty ($ params ['beacon_interval ' ])) {
191177 $ config [] = 'beacon_int= ' . intval ($ params ['beacon_interval ' ]);
@@ -201,7 +187,6 @@ public function buildConfig(array $params, StatusMessage $status): string
201187
202188 // choose VHT segment index (fallback only if required)
203189 $ vht_freq_idx = ($ params ['channel ' ] < RASPI_5GHZ_CHANNEL_MIN ) ? 42 : 155 ;
204-
205190 $ hwMode = isset ($ params ['hw_mode ' ]) ? $ params ['hw_mode ' ] : '' ;
206191
207192 // fetch settings for selected mode
@@ -231,7 +216,7 @@ public function buildConfig(array $params, StatusMessage $status): string
231216 $ config [] = 'interface= ' . $ params ['interface ' ];
232217 }
233218
234- $ config [] = 'wpa= ' . $ wpa_numeric ;
219+ $ config [] = 'wpa= ' . $ wpa ;
235220 $ config [] = 'wpa_pairwise= ' . ($ params ['wpa_pairwise ' ] ?? '' );
236221 $ config [] = 'country_code= ' . ($ params ['country_code ' ] ?? '' );
237222 $ config [] = 'ignore_broadcast_ssid= ' . ($ params ['hiddenSSID ' ] ?? 0 );
0 commit comments