[Bugfix][API-872]fix ap can't start wpa2
Change-Id: I865f30108ea185524fc8bdc19ebf1ca16d359fb0
diff --git a/lib/liblynq-wifi6/libwifi6.c b/lib/liblynq-wifi6/libwifi6.c
index 23a9a3b..70f7ac2 100755
--- a/lib/liblynq-wifi6/libwifi6.c
+++ b/lib/liblynq-wifi6/libwifi6.c
@@ -853,6 +853,12 @@
else if (strcmp( flag, "[ESS]") == 0 || strcmp( flag,"[WPS][ESS]") == 0)
{
return LYNQ_WIFI_AUTH_OPEN;
+ }else if ( strstr(flag, "SHA256") == 0 )
+ {
+ return LYNQ_WIFI_AUTH_WPA3_PSK;
+ }else if ( strstr( flag,"SAE-CCMP") == 0 )
+ {
+ return LYNQ_WIFI_AUTH_WPA2_WPA3_PSK;
}
}
@@ -1291,6 +1297,7 @@
if (0 == lynq_wifi_ap_auth_get(idx, &org_auth) && org_auth != -1) {
if (org_auth == auth) {
+ RLOGD("org_auth --- is %d\n",org_auth);
return 0;
}
else {
@@ -1313,14 +1320,15 @@
switch(auth){
case LYNQ_WIFI_AUTH_OPEN:
{
+ RLOGD("auth == is LYNQ_WIFI_AUTH_OPEN\n");
sprintf(lynq_auth_cmd,"SET_NETWORK %d key_mgmt NONE", AP_NETWORK_0);
sprintf(lynq_pairwise_cmd,"SET_NETWORK %d pairwise NONE", AP_NETWORK_0);
-
DO_OK_FAIL_REQUEST(lynq_auth_cmd);
break;
}
case LYNQ_WIFI_AUTH_WEP:
{
+ RLOGD("auth == is LYNQ_WIFI_AUTH_WEP\n");
sprintf(lynq_auth_cmd,"SET_NETWORK %d key_mgmt NONE", AP_NETWORK_0);
sprintf(lynq_pairwise_cmd,"SET_NETWORK %d pairwise NONE", AP_NETWORK_0);
sprintf(lynq_auth_alg_cmd,"SET_NETWORK %d auth_alg SHARED", AP_NETWORK_0);
@@ -1330,6 +1338,17 @@
break;
}
case LYNQ_WIFI_AUTH_WPA_PSK:
+ {
+ sprintf(lynq_auth_cmd,"SET_NETWORK %d proto WPA", AP_NETWORK_0);
+ sprintf(lynq_psk_cmd,"SET_NETWORK %d key_mgmt WPA-PSK", AP_NETWORK_0);
+ sprintf(lynq_pairwise_cmd,"SET_NETWORK %d pairwise CCMP", AP_NETWORK_0);
+
+ DO_OK_FAIL_REQUEST(lynq_auth_cmd);
+ DO_OK_FAIL_REQUEST(lynq_psk_cmd);
+ DO_OK_FAIL_REQUEST(lynq_pairwise_cmd);
+ break;
+
+ }
case LYNQ_WIFI_AUTH_WPA2_PSK:
{
if (auth == LYNQ_WIFI_AUTH_WPA_PSK)
@@ -1406,30 +1425,41 @@
{
if (inner_get_param(CTRL_AP, AP_NETWORK_0, "auth_alg", lynq_auth_alg_str) != 0)
{
+ RLOGD("---auth is OPEN\n");
*auth = LYNQ_WIFI_AUTH_OPEN;
+ return 0;
}
else if (memcmp(lynq_auth_alg_str, "SHARED", 6) == 0)
{
+ RLOGD("---auth is WEP\n");
*auth = LYNQ_WIFI_AUTH_WEP;
+ return 0;
}
else
{
+ RLOGD("---auth is OPEN\n");
*auth = LYNQ_WIFI_AUTH_OPEN;
+ return 0;
}
}
else if(strcmp( lynq_auth_str, "WPA-PSK") == 0 )
{
if (inner_get_param(CTRL_AP, AP_NETWORK_0, "proto", lynq_proto_str) != 0)
{
+ RLOGE("---auth is -1\n");
*auth = -1;
}
else if (memcmp(lynq_proto_str, "RSN", 3) == 0)
{
+ RLOGD("---auth WPA2_PSK\n");
*auth = LYNQ_WIFI_AUTH_WPA2_PSK;
+ return 0;
}
else
{
+ RLOGD("---auth WPA_PSK\n");
*auth = LYNQ_WIFI_AUTH_WPA_PSK;
+ return 0;
}
}
@@ -1443,13 +1473,16 @@
{
RLOGD("auth : LYNQ_WIFI_AUTH_WPA2_WPA3_PSK\n");
*auth = LYNQ_WIFI_AUTH_WPA2_WPA3_PSK;
+ return 0;
}else if (memcmp(lynq_auth_str,"2",1) == 0 )
{
RLOGD("auth : LYNQ_WIFI_AUTH_WPA3_PSK\n");
*auth = LYNQ_WIFI_AUTH_WPA3_PSK;
+ return 0;
}
else
{
+ RLOGE("---auth -- -1\n");
*auth = -1;
}
@@ -1567,19 +1600,20 @@
if (0 != lynq_wifi_ap_auth_get(idx, &auth))
{
+ RLOGE("[lynq_ap_password_set] get ap auth info error\n");
return -1;
}
else if (auth == LYNQ_WIFI_AUTH_OPEN)
{
- RLOGE("ap auth :LYNQ_WIFI_AUTH_OPEN\n");
- return -1;
+ RLOGD("ap auth :LYNQ_WIFI_AUTH_OPEN\n");
+ return 0;
}
CHECK_WPA_CTRL(CTRL_AP);
if (auth == LYNQ_WIFI_AUTH_WEP)
{
- RLOGD("ap auth : LYNQ_WIFI_AUTH_WEP\n");
+ RLOGD("[lynq_ap_password_set]ap auth : LYNQ_WIFI_AUTH_WEP\n");
sprintf(lynq_tmp_cmd,"SET_NETWORK %d wep_key0 \"%s\"",AP_NETWORK_0, password);
sprintf(lynq_wep_tx_keyidx_cmd,"SET_NETWORK %d wep_tx_keyidx 0",AP_NETWORK_0);
DO_OK_FAIL_REQUEST(lynq_tmp_cmd);
@@ -1587,13 +1621,14 @@
}
else if (auth == LYNQ_WIFI_AUTH_WPA_PSK || auth == LYNQ_WIFI_AUTH_WPA2_PSK)
{
- RLOGD("ap auth :LYNQ_WIFI_AUTH_WPA_PSK LYNQ_WIFI_AUTH_WPA2_PSK\n");
+ RLOGD("[lynq_ap_password_set]ap auth :LYNQ_WIFI_AUTH_WPA_PSK LYNQ_WIFI_AUTH_WPA2_PSK\n");
sprintf(lynq_tmp_cmd,"SET_NETWORK %d psk \"%s\"",AP_NETWORK_0, password);
DO_OK_FAIL_REQUEST(lynq_tmp_cmd);
}
else if (auth == LYNQ_WIFI_AUTH_WPA2_WPA3_PSK || auth == LYNQ_WIFI_AUTH_WPA3_PSK)
{
+ RLOGD("[lynq_ap_password_set]ap auth :LYNQ_WIFI_AUTH_WPA2_WPA3 LYNQ_WIFI_AUTH_WPA3_PSK\n");
sprintf(lynq_tmp_cmd,"SET_NETWORK %d psk \"%s\"",AP_NETWORK_0, password);
sprintf(lynq_wpa2_wpa3,"SET_NETWORK %d sae_password \"%s\"",AP_NETWORK_0, password);
DO_OK_FAIL_REQUEST(lynq_tmp_cmd);
@@ -1601,8 +1636,8 @@
}
else
- {
- RLOGE("Something Error\n");
+ {
+ RLOGD("[lynq_ap_password_set]ap auth :get ap auth error\n");
return -1;
}
@@ -1717,6 +1752,7 @@
if (strcmp(lynq_proto_str, "RSN") == 0)
{
*auth = LYNQ_WIFI_AUTH_WPA2_PSK;
+ return 0;
}
}
}
@@ -1729,10 +1765,12 @@
{
*auth = LYNQ_WIFI_AUTH_WPA2_WPA3_PSK;
+ return 0;
}else if( strncmp(lynq_auth_str,"2",1) == 0 )
{
*auth = LYNQ_WIFI_AUTH_WPA3_PSK;
+ return 0;
}else
{
*auth = -1;
@@ -2114,7 +2152,7 @@
static int inner_set_sta_auth_psw(int net_no, lynq_wifi_auth_s auth, char *password)
{
- char lynq_auth_cmd[64]={0};
+ char lynq_auth_cmd[128]={0};
char lynq_ket_mgmt_cmd[64]={0};
char lynq_pairwise_cmd[64]={0};
char lynq_psk_cmd[64]={0};
@@ -2161,12 +2199,14 @@
}
case LYNQ_WIFI_AUTH_WPA2_WPA3_PSK:
{
- sprintf(lynq_auth_cmd,"SET_NETWORJ %d ieee80211w 1",net_no);
- sprintf(lynq_ket_mgmt_cmd,"SET_NETWORJ %d key_mgmt SAE WPA-PSK",net_no);
+ //sprintf(lynq_auth_cmd,"SET_NETWORK %d ieee80211w 1",net_no);
+ sprintf(lynq_auth_cmd,"wpa_cli -iwpa_wlan0_cmd -p/var/run/ IFNAME=wlan0 set_network %d ieee80211w 1",net_no);
+ sprintf(lynq_ket_mgmt_cmd,"SET_NETWORK %d key_mgmt SAE WPA-PSK",net_no);
sprintf(lynq_pairwise_cmd,"SET_NETWORK %d pairwise CCMP", net_no);
sprintf(lynq_psk_cmd, "SET_NETWORK %d psk \"%s\"", net_no, password);
- DO_OK_FAIL_REQUEST(lynq_auth_cmd);
+ // DO_OK_FAIL_REQUEST(lynq_auth_cmd);
+ system(lynq_auth_cmd);
DO_OK_FAIL_REQUEST(lynq_ket_mgmt_cmd);
DO_OK_FAIL_REQUEST(lynq_pairwise_cmd);
DO_OK_FAIL_REQUEST(lynq_psk_cmd);
@@ -2175,12 +2215,14 @@
}
case LYNQ_WIFI_AUTH_WPA3_PSK:
{
- sprintf(lynq_auth_cmd,"SET_NETWORJ %d ieee80211w 2",net_no);
- sprintf(lynq_ket_mgmt_cmd,"SET_NETWORJ %d key_mgmt SAE",net_no);
+ // sprintf(lynq_auth_cmd,"SET_NETWORK %d ieee80211w 2",net_no);
+ sprintf(lynq_auth_cmd,"wpa_cli -iwpa_wlan0_cmd -p/var/run/ IFNAME=wlan0 set_network %d ieee80211w 1",net_no);
+ sprintf(lynq_ket_mgmt_cmd,"SET_NETWORk %d key_mgmt SAE",net_no);
sprintf(lynq_pairwise_cmd,"SET_NETWORK %d pairwise CCMP", net_no);
sprintf(lynq_psk_cmd, "SET_NETWORK %d psk \"%s\"", net_no, password);
- DO_OK_FAIL_REQUEST(lynq_auth_cmd);
+ // DO_OK_FAIL_REQUEST(lynq_auth_cmd);
+ system(lynq_auth_cmd);
DO_OK_FAIL_REQUEST(lynq_ket_mgmt_cmd);
DO_OK_FAIL_REQUEST(lynq_pairwise_cmd);
DO_OK_FAIL_REQUEST(lynq_psk_cmd);
@@ -2625,12 +2667,14 @@
int lynq_wifi_sta_start_scan(lynq_wifi_index_e idx)
{
+ const char *clean_last_re ="wpa_cli -iwpa_wlan0_cmd -p/var/run/ IFNAME=wlan0 bss_flush";
const char *lynq_scan_cmd = "SCAN";
CHECK_IDX(idx, CTRL_STA);
CHECK_WPA_CTRL(CTRL_STA);
+ system(clean_last_re);
g_sta_scan_finish_flag = 0;
DO_REQUEST(lynq_scan_cmd);
if (reply_len >=9 && memcmp(cmd_reply, "FAIL-BUSY", 9) == 0 )