[Bugfix] temp fix uart3 course wifi unavailable & fix [302] [305] [283]
Change-Id: I7df20d7dc5b62488ca7a23756474e30422eda324
diff --git a/lib/liblynq-wifi6/libwifi6.c b/lib/liblynq-wifi6/libwifi6.c
index 682fa6d..d0e8750 100755
--- a/lib/liblynq-wifi6/libwifi6.c
+++ b/lib/liblynq-wifi6/libwifi6.c
@@ -99,7 +99,7 @@
printf("to call [%s]\n", cmd_str); \
ret = wpa_ctrl_request(lynq_wpa_ctrl, cmd_str, strlen(cmd_str), cmd_reply, &reply_len, NULL); \
if (ret != 0) { \
- printf("call ##cmd_str fail %d\n", ret); \
+ printf("call "#cmd_str" fail %d\n", ret); \
return ret; \
} \
cmd_reply[reply_len+1] = '\0'; \
@@ -109,10 +109,10 @@
#define DO_OK_FAIL_REQUEST(cmd_str) do { \
DO_REQUEST(cmd_str); \
if (reply_len >=4 && memcmp(cmd_reply, "FAIL", 4) == 0 ) {\
- printf("cmd ##cmd_str return FAIL\n"); \
+ printf("cmd "#cmd_str" return FAIL\n"); \
return -1; \
} else if (reply_len >=2 && memcmp(cmd_reply, "OK", 2) != 0) { \
- printf("cmd ##cmd_str return not OK|FAIL\n"); \
+ printf("cmd "#cmd_str" return not OK|FAIL\n"); \
return -1; \
} \
}while (0)
@@ -466,7 +466,7 @@
const char *lynq_wifi_add_network = "ADD_NETWORK";
DO_REQUEST(lynq_wifi_add_network);
- if (memcpy(cmd_reply, "FAIL", 4) == 0) {
+ if (memcmp(cmd_reply, "FAIL", 4) == 0) {
return -1;
}
@@ -478,6 +478,7 @@
}
return atoi(cmd_reply);
}
+
static int lynq_check_network_number(lynq_wifi_index_e idx, int ap_sta, int net_no)
{
int count, index;
@@ -501,6 +502,10 @@
if (index >= net_no) { // required network no created
return 0;
}
+ else if( index < 0) {
+ printf("add network fail\n");
+ return -1;
+ }
}
if (index < 0)
@@ -638,7 +643,7 @@
}
} //end else if (state != NULL)
- if ((p = strstr(split_lines[i], FLAG_ID)) != NULL) {
+ if ((p = strstr(split_lines[i], FLAG_ID)) == split_lines[i]) {
ret = 0;
curr_state->net_no = atoi(p);
printf("net_no %d, -- %s\n", curr_state->net_no, p);
@@ -898,7 +903,7 @@
}
else if (auth == LYNQ_WIFI_AUTH_WPA2_PSK) {
sprintf(lynq_auth_cmd,"SET_NETWORK %d proto WPA2", AP_NETWORK_0);
- sprintf(lynq_psk_cmd,"SET_NETWORK %d key_mgmt WPA2-PSK", AP_NETWORK_0);
+ sprintf(lynq_psk_cmd,"SET_NETWORK %d key_mgmt WPA-PSK", AP_NETWORK_0);
}
// sprintf(lynq_auth_cmd,"SET_NETWORK %d proto WPA2", AP_NETWORK_0);
// sprintf(lynq_psk_cmd,"SET_NETWORK %d key_mgmt WPA-PSK", AP_NETWORK_0);
@@ -1118,12 +1123,21 @@
static int inner_get_network_auth(int interface, int net_no, lynq_wifi_auth_s *auth) {
char lynq_auth_str[MAX_RET] = {0};
+ char lynq_proto_str[MAX_RET] = {0};
if (inner_get_param(interface, net_no, "key_mgmt", lynq_auth_str) != 0) {
return -1;
}
*auth = convert_auth_from_key_mgmt(lynq_auth_str);
+
+ if (*auth == LYNQ_WIFI_AUTH_WPA_PSK) {
+ if (inner_get_param(interface, net_no, "proto", lynq_proto_str) == 0) {
+ if (strcmp(lynq_proto_str, "RSN") == 0) {
+ *auth = LYNQ_WIFI_AUTH_WPA2_PSK;
+ }
+ }
+ }
return 0;
}
@@ -1378,7 +1392,7 @@
sprintf(lynq_auth_cmd,"SET_NETWORK %d proto WPA", net_no);
}
else if (auth == LYNQ_WIFI_AUTH_WPA2_PSK) {
- sprintf(lynq_auth_cmd,"SET_NETWORK %d proto WPA2", net_no);
+ sprintf(lynq_auth_cmd,"SET_NETWORK %d proto RSN", net_no);
}
sprintf(lynq_ket_mgmt_cmd,"SET_NETWORK %d key_mgmt WPA-PSK", net_no);
sprintf(lynq_pairwise_cmd,"SET_NETWORK %d pairwise CCMP", net_no);
@@ -1504,21 +1518,47 @@
return inner_sta_start_stop(curr_state.net_no, 0, 0);
}
-int lynq_wifi_sta_start(lynq_wifi_index_e idx) {
+int lynq_wifi_sta_start(lynq_wifi_index_e idx)
+{
+// const char *lynq_reconfigure_cmd = "RECONFIGURE /data/wifi/wg870/wpa_supplicant.conf";
CHECK_IDX(idx, CTRL_STA);
+ CHECK_WPA_CTRL(CTRL_STA);
+
+ system("connmanctl enable wifi");
+
if (system("ifconfig | grep wlan0") != 0) {
return -1;
}
- return system("connmanctl enable wifi");
+// DO_OK_FAIL_REQUEST(lynq_reconfigure_cmd);
+
+ return 0;
}
int lynq_wifi_sta_stop(lynq_wifi_index_e idx)
{
- CHECK_IDX(idx, CTRL_STA);
+ char lynq_disable_network_cmd[MAX_CMD];
+ curr_status_info curr_state;
+ ap_info_s ap_info;
- return system("connmanctl disable wifi");
+ CHECK_IDX(idx, CTRL_STA);
+ CHECK_WPA_CTRL(CTRL_STA);
+
+ curr_state.ap = &ap_info;
+ curr_state.state = NULL;
+
+ if (0 != inner_get_status_info(CTRL_STA, &curr_state) || curr_state.net_no < 0) {
+ return 0;
+ }
+
+ sprintf(lynq_disable_network_cmd, "DISABLE_NETWORK %d", curr_state.net_no);
+ DO_OK_FAIL_REQUEST(lynq_disable_network_cmd);
+
+ DO_OK_FAIL_REQUEST(cmd_save_config);
+
+ return 0;
+// return system("connmanctl disable wifi");
}
//static int inner_get_sta_info(lynq_wifi_index_e idx, const char * bssid, device_info_s *dev) {