[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 )