[Bugfix]fix supplicant bug
Change-Id: Ia343eda506155ef56b361987e0e2fa750d040c2c
diff --git a/lib/liblynq-wifi6/libwifi6.c b/lib/liblynq-wifi6/libwifi6.c
index d959554..53c0112 100755
--- a/lib/liblynq-wifi6/libwifi6.c
+++ b/lib/liblynq-wifi6/libwifi6.c
@@ -30,12 +30,12 @@
char g_wifi_channel[8]="";
char g_wifi_bandwidth[8]="";
char g_max_sta_num[24]="";
+
int lynq_wifi_enable(void)
{
char *lynq_wifi_enable[]={"insmod /lib/modules/4.19.98/kernel/drivers/net/wireless/bcmdhd/bcmdhd.ko "
"firmware_path=/system/etc/firmware/wifi/wg870/w870_rtecdc_mfg.trxs "
- "nvram_path=/system/etc/firmware/wifi/wg870/cyw955572fcipa_rev2.52.txt"};
-
+ "nvram_path=/system/etc/firmware/wifi/wg870/cyw955572fcipa_rev2.52.txt\n"};
if(system(lynq_wifi_enable[0])==-1){
return -1;
}
@@ -801,21 +801,37 @@
return 0;
}
-
-
int lynq_wifi_wpa_start(void){
+ int ret;
FILE *fp;
- fp=popen("wpa_supplicant -iwlan0 -Dnl80211 -c /data/wifi/wg870/wpa_supplicant.conf -g/var/run/wpa_wlan0_cmd -dd -t -B","r");
- if(fp==NULL){
- perror("start wpa_supplicant faild!");
- return -1;
- }
+ char LYNQ_CMD_RET[MAX_RET];
+ system("wpa_supplicant -iwlan0 -Dnl80211 -c /data/wifi/wg870/wpa_supplicant.conf -g/var/run/wpa_wlan0_cmd -dd -t -B");
+
+ while(1)
+ {
+ fp=popen("ps -ef | grep wpa_supplicant","r");
+ if(fp==NULL){
+ perror("start wpa_supplicant faild!");
+ return -1;
+ }
+ memset(LYNQ_CMD_RET,'\0',sizeof(LYNQ_CMD_RET));
+ fgets(LYNQ_CMD_RET,sizeof(LYNQ_CMD_RET),fp);
+ if(strlen(LYNQ_CMD_RET) > 85){
+ ret=pclose(fp);
+ if(ret==-1){
+ perror("close faild");
+ return -1;
+ }
+ break;
+ }
+ ret=pclose(fp);
+ if(ret==-1){
+ perror("close faild");
+ return -1;
+ }
- int ret=pclose(fp);
- if(ret==-1){
- perror("close file faild");
- return -1;
- }
+ }
+
return 0;
}