[BugFix][API-1450]clear dnsmasq lease info when sta device disconnect
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: I3cc34ad4f85dcfb495b7fdb22634d98c9bda9962
diff --git a/lib/liblynq-wifi6/libwifi6.c b/lib/liblynq-wifi6/libwifi6.c
index e99ff0d..77d826e 100755
--- a/lib/liblynq-wifi6/libwifi6.c
+++ b/lib/liblynq-wifi6/libwifi6.c
@@ -67,6 +67,7 @@
void * g_sta_auto_callback_priv = NULL;
STA_AUTO_CALLBACK_FUNC_PTR g_sta_auto_callback_func = NULL;
+
//const char * CTRL_PATH="/var/run/wpa_supplicant";
const char * CTRL_PATH[2] = {"/var/run/wpa_supplicant/wlan0", "/var/run/wpa_supplicant/ap0"};
//const char * CTRL_PATH[2] = {"/var/run/wpa_supplicant/wlan0", "/var/run/wpa_supplicant/wlan0"};
@@ -499,6 +500,9 @@
size_t len = MAX_RET;
char msg_notify[MAX_RET];
int idle_count = 0;
+ char *ptr = NULL;
+ char mac[32] = {0};
+ char cmd[256] = {0};
struct wpa_ctrl *lynq_wpa_ctrl = NULL;
g_ap_watcher_stop_flag = 0;
@@ -525,6 +529,16 @@
if (strstr(msg_notify, "AP-STA-DISCONNECTED") != NULL)
{
inner_notify_ap_msg(LYNQ_WIFI_STATUS_DISCONNECT);
+ ptr = strstr(msg_notify, "AP-STA-DISCONNECTED");
+ if( ptr != NULL)
+ {
+ ptr += strlen("AP-STA-DISCONNECTED ");
+ memcpy(mac,ptr,17);
+ sprintf(cmd,"cat /run/wg870/ap0.lease | grep \"%s\" | awk '{print \"dhcp_release ap0 \"$3\" \"$2\}' | sh",mac);
+ RLOGD("%s %d cmd is %s",__func__,__LINE__,cmd);
+ system(cmd);
+ }
+
if (g_gbw_enabled == 1 && g_gbw_mac != NULL)
{
RLOGD("disconect %d, %s ,%s\n", g_gbw_enabled, g_gbw_mac, strstr(msg_notify, (const char*)g_gbw_mac));
@@ -2179,6 +2193,7 @@
DO_OK_FAIL_REQUEST(lynq_wifi_ssid_cmd);
DO_OK_FAIL_REQUEST(cmd_save_config);
+
RLOGD("[lynq_wifi_ap_ssid_set] set ssid sucss");
return 0;