[BugFix][API-1448]get ip from neigh list  null than get ip from dnsmasq ap0.lease

Affected branch:MR3.0-xx && GSW3.0

Affected module:wifi

Is it addected on both ZXIC and MTK: only MTK

Self-test: Yes

Doc Update: No

Change-Id: I7091798568a803a7a14363d1f44f0516945c050d
diff --git a/lib/liblynq-wifi6/libwifi6.c b/lib/liblynq-wifi6/libwifi6.c
index 0a5a4e3..e99ff0d 100755
--- a/lib/liblynq-wifi6/libwifi6.c
+++ b/lib/liblynq-wifi6/libwifi6.c
@@ -1756,6 +1756,37 @@
 
     return ret;
 }
+/*
+ *add func to get conencted STA device ip from dnsmasq ap0.lease
+ *return 0 means get ip success
+ */
+static int inner_get_ip_by_mac_lease(const char * mac, char * ip,int ip_len)
+{
+    char * p;
+    int ret;
+    char cmd[256]={0};
+    if (NULL == mac || NULL == ip)
+        return -1;
+    memset(ip, 0, ip_len);
+    sprintf(cmd, "cat /run/wg870/ap0.lease | grep \"%s\" | awk '{print $3}'", mac);
+    ret = exec_cmd(cmd, ip, ip_len);
+    if( ret == 0 )
+    {
+        p = strchr(ip, '\n');
+        if (NULL != p)
+        {
+            *p = '\0';
+            RLOGD("inner_get_ip_by_mac_lease %s function return is:%d", ip,ret);
+            return ret;
+        }else
+        {
+            ret = -1;
+        }
+    }
+    RLOGD("%s %d function return is:%d",__func__,__LINE__,ret);
+    return ret;
+
+}
 
 static int inner_get_ip_by_mac(const char * mac, char * ip, int ip_len)
 {
@@ -1771,6 +1802,9 @@
     if (NULL != p)
     {
         *p = '\0';
+    }else
+    {
+	ret = inner_get_ip_by_mac_lease(mac,ip,ip_len);
     }
     RLOGD("inner_get_ip_by_mac %s\n", ip);
     return ret;
@@ -2213,7 +2247,7 @@
     char lynq_wifi_frequency_cmd[128]={0};
     char lynq_cmd_mode[128]={0};
     char lynq_cmd_slect[128]={0};
-    RLOGD("enter lynq_wifi_ap_frequency_set and input frequency is:%d", lynq_wifi_frequency);
+    RLOGD("enter %s %d input frequency:%d",__func__,__LINE__,lynq_wifi_frequency);
     //@do check input frequency
     check = lynq_check_set_frequency(lynq_wifi_frequency);
     if(check != 0)
@@ -2247,6 +2281,7 @@
     DO_OK_FAIL_REQUEST(lynq_cmd_mode);
     DO_OK_FAIL_REQUEST(cmd_save_config);
 //@ tmp do down/up to fix 5G AP turn to 2.4G cannot be conenct
+
     system("wl down");
     system("wl up");
     RLOGD("[%s] -- run cmd down/up --%d",__func__,__LINE__);
@@ -2678,13 +2713,10 @@
 
 int lynq_wifi_ap_start(lynq_wifi_index_e idx)
 {
-    RLOGD("[lynq_wifi]----enter lynq_wifi_ap_start");
+    RLOGD("enter %s %d",__func__,__LINE__);
     char LYNQ_WIFI_CMD[128]={0};
-    //const char *lynq_remove_all_cmd = "REMOVE_NETWORK all";
-    //const char *lynq_reconfig_cmd = "RECONFIGURE /data/wifi/wg870/wpa_supplicant.conf";
-    RLOGD("enter lynq_wifi_ap_channel_get");
-    CHECK_IDX(idx, CTRL_AP);
 
+    CHECK_IDX(idx, CTRL_AP);
     CHECK_WPA_CTRL(CTRL_AP);
 
     if (inner_get_ap_interface_name() == NULL)
@@ -2693,8 +2725,6 @@
         return -1;
     }
 
-    //DO_OK_FAIL_REQUEST(lynq_remove_all_cmd);
-    //DO_OK_FAIL_REQUEST(lynq_reconfig_cmd);
 
     sprintf(LYNQ_WIFI_CMD,"SELECT_NETWORK %d",AP_NETWORK_0);
     DO_OK_FAIL_REQUEST(LYNQ_WIFI_CMD);
@@ -2722,8 +2752,8 @@
         }
         RLOGD("[lynq_wifi_ap_start] creat APTmpWatcherThreadProc ok");
     }
-    RLOGD("[lynq_wifi]----end lynq_wifi_ap_start");
 
+    RLOGD("end %s %d",__func__,__LINE__);
     return 0;
 }
 
@@ -2734,6 +2764,7 @@
 
 int lynq_wifi_ap_stop(lynq_wifi_index_e idx)
 {
+    RLOGD("enter %s %d",__func__,__LINE__);
     char LYNQ_WIFI_CMD[128]={0};
 
     CHECK_IDX(idx, CTRL_AP);
@@ -2744,7 +2775,6 @@
 
     DO_OK_FAIL_REQUEST(LYNQ_WIFI_CMD);
 
-//    system("connmanctl tether wifi off");
 
     ret = system_call_v("%s %s", start_stop_ap_script, "stop");
     if (ret != 0)
@@ -2757,6 +2787,7 @@
         pthread_join(g_ap_tmp_watcher_pid, NULL);
     g_ap_tmp_watcher_pid = 0;
 
+    RLOGD("end %s %d",__func__,__LINE__);
     return 0;
 }
 
@@ -3118,10 +3149,8 @@
                 {
                     if (memcmp(ssid + 1, ap->ap_ssid, strlen(ap->ap_ssid)) == 0 && ssid[strlen(ap->ap_ssid) + 1] == '\"')
                     {
-                        RLOGD("-----curr_get ssid form config is %s",ssid);
                         break;
                     }
-                    RLOGD("-----countine to find dest ssid %s ---curr_get ssid from config is %s",ap->ap_ssid,ssid);
                 }
                 else
                 {
@@ -3135,7 +3164,6 @@
                         }
                         if (memcmp(tmp_ssid, ap->ap_ssid, ssid_len) == 0)
                         {
-                            RLOGD("curr_ssid is(from config)   ---- %s  ap_info ssid --->",tmp_ssid,ap->ap_ssid);
                             break;
                         }
                     }
@@ -3157,7 +3185,6 @@
         for( index=0; index < count; index++ )
         {
             p = strstr(split_lines[index], "key_mgmt=");
-            RLOGD("current p str ------- %s",p);
             if(p != NULL)
             {
                 p += 9;
@@ -3176,7 +3203,6 @@
                 }else{
                         curr_auth = 1;
                     }
-                RLOGD("************curret_get_auth is %d   ssid is %s",curr_auth,ap->ap_ssid);
                 if( curr_auth < 1 || curr_auth > 6)
                 {
                     ret = -1;
@@ -3224,7 +3250,6 @@
                     if (*password == '\"')
                     {
                         *password = '\0';
-                        RLOGD("---------password------- p:: %s",p);
                         ret = 0;
                         break;
                     }
@@ -3882,17 +3907,13 @@
 
 int lynq_wifi_sta_stop(lynq_wifi_index_e idx)
 {
-//    char lynq_disable_network_cmd[MAX_CMD];
-//    curr_status_info curr_state;
-//    ap_info_s ap_info;
+    RLOGD("enter %s %d",__func__,__LINE__);
     int i=0;
     char state[MAX_CMD];
 
-//    const char * lynq_disable_sta_cmd = "wpa_cli -iwpa_wlan0_cmd -p/var/run/ IFNAME=wlan0 disable_net all";
     CHECK_IDX(idx, CTRL_STA);
     CHECK_WPA_CTRL(CTRL_STA);
 
-//    system(lynq_disable_sta_cmd);
     DO_OK_FAIL_REQUEST(cmd_disconnect);
     DO_OK_FAIL_REQUEST(cmd_save_config);
 
@@ -3920,6 +3941,7 @@
     pthread_mutex_lock(&s_global_check_mutex);
     g_history_disconnect_valid_num = 0;   //clean history_disconenct_list info
     pthread_mutex_unlock(&s_global_check_mutex);
+    RLOGD("end %s %d",__func__,__LINE__);
     return 0;
 //    return system("connmanctl disable wifi");
 }
@@ -4290,15 +4312,18 @@
 }
 
 int lynq_unreg_ap_event_callback(void * priv) {
+    RLOGD("enter %s %d",__func__,__LINE__);
     pthread_mutex_lock(&s_ap_callback_mutex);
     if (g_ap_callback_priv == priv)
     {
         g_ap_callback_func = NULL;
         g_ap_callback_priv = NULL;
         pthread_mutex_unlock(&s_ap_callback_mutex);
+	RLOGD("unreg ap callback pass %s %d",__func__,__LINE__);
         return 0;
     }
     pthread_mutex_unlock(&s_ap_callback_mutex);
+    RLOGE("unreg ap callback fail %s %d",__func__,__LINE__);
     return -1;
 }
 
@@ -4331,15 +4356,18 @@
 }
 
 int lynq_unreg_sta_event_callback(void * priv) {
+    RLOGD("enter %s %d",__func__,__LINE__);
     pthread_mutex_lock(&s_sta_callback_mutex);
     if (g_sta_callback_priv == priv)
     {
         g_sta_callback_func = NULL;
         g_sta_callback_priv = NULL;
         pthread_mutex_unlock(&s_sta_callback_mutex);
+        RLOGD("unreg sta callback pass  %s %d",__func__,__LINE__);
         return 0;
     }
     pthread_mutex_unlock(&s_sta_callback_mutex);
+    RLOGE("unreg sta callback fail  %s %d",__func__,__LINE__);
     return -1;
 }