[ALPS09313902] fix issue of change wifi security mode fail with dmcli
[Description]
Fix issue of Change securitye mode form wpa+wpa2 to wpa3, set error
hostapd config
[Test]
Pass
Change-Id: Id4dbee46e2ae3b1e58ccdd91ca5c47fbd060ebf1
diff --git a/src/wifi/wifi_hal.c b/src/wifi/wifi_hal.c
index 02ec054..7b5236e 100644
--- a/src/wifi/wifi_hal.c
+++ b/src/wifi/wifi_hal.c
@@ -13746,6 +13746,10 @@
else if (security->encr == wifi_encryption_aes_tkip)
params.value = "TKIP CCMP";
wifi_hostapdWrite(config_file, ¶ms, 1);
+
+ /* rsn_pairwise need to be updated too */
+ params.name = "rsn_pairwise";
+ wifi_hostapdWrite(config_file, ¶ms, 1);
}
if (security->mfp == wifi_mfp_cfg_disabled)
@@ -13804,6 +13808,7 @@
char config_file[128] = {0};
int disable = 0;
bool set_sae = FALSE;
+ wifi_encryption_method_t wpa_pairwise = 0, rsn_pairwise = 0;
WIFI_ENTRY_EXIT_DEBUG("Inside %s:%d\n",__func__, __LINE__);
sprintf(config_file, "%s%d.conf", CONFIG_PREFIX, ap_index);
@@ -13832,16 +13837,30 @@
security->mode = wifi_security_mode_enhanced_open;
}
- wifi_hostapdRead(config_file,"wpa_pairwise",buf,sizeof(buf));
if (security->mode == wifi_security_mode_none)
security->encr = wifi_encryption_none;
else {
- if (strcmp(buf, "TKIP") == 0)
- security->encr = wifi_encryption_tkip;
- else if (strcmp(buf, "CCMP") == 0)
- security->encr = wifi_encryption_aes;
- else
- security->encr = wifi_encryption_aes_tkip;
+ wifi_hostapdRead(config_file,"wpa_pairwise",buf,sizeof(buf));
+ if (strlen(buf) > 0) {
+ if (strcmp(buf, "TKIP") == 0)
+ wpa_pairwise = wifi_encryption_tkip;
+ else if (strcmp(buf, "CCMP") == 0)
+ wpa_pairwise = wifi_encryption_aes;
+ else
+ wpa_pairwise = wifi_encryption_aes_tkip;
+ }
+
+ wifi_hostapdRead(config_file,"rsn_pairwise",buf,sizeof(buf));
+ if (strlen(buf) > 0) {
+ if (strcmp(buf, "TKIP") == 0)
+ rsn_pairwise = wifi_encryption_tkip;
+ else if (strcmp(buf, "CCMP") == 0)
+ rsn_pairwise = wifi_encryption_aes;
+ else
+ rsn_pairwise = wifi_encryption_aes_tkip;
+ }
+
+ security->encr = wpa_pairwise | rsn_pairwise;
}
if (security->mode != wifi_encryption_none) {