From 8028119756a61b5ddd84cd6acbddab7aaf21a057 Mon Sep 17 00:00:00 2001 From: Abhishek Sansanwal Date: Fri, 25 May 2018 19:25:11 +0530 Subject: [PATCH] Fix bug in Ip conflict set/get enabled API's After each reboot the enabled state was being misreported if WiFi was not connected to an AP previously. Signed-off-by: Abhishek Sansanwal Change-Id: Iadcd7c4af5a82c748e97325e04f9520a963d17ed --- src/ip-conflict-detect.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/ip-conflict-detect.c b/src/ip-conflict-detect.c index adb9124..65805e3 100755 --- a/src/ip-conflict-detect.c +++ b/src/ip-conflict-detect.c @@ -94,7 +94,7 @@ static struct timer_data td = { int ioctl_sock; static bool initial_bursts = true; -bool is_ip_conflict_detect_enabled = true; +bool is_ip_conflict_detect_enabled = false; static gboolean send_arp(gpointer data); static void __netconfig_wifi_notify_ip_conflict(char *state, char *mac); ip_conflict_state_e conflict_state = NETCONFIG_IP_CONFLICT_STATE_CONFLICT_NOT_DETECTED; @@ -335,8 +335,8 @@ err: struct sock_data * start_ip_conflict_mon(void) { - if (is_ip_conflict_detect_enabled == false) { - INFO("detection mode is set to false"); + if (is_ip_conflict_detect_enabled == true) { + INFO("detection mode is set to true"); return NULL; } @@ -381,6 +381,8 @@ struct sock_data * start_ip_conflict_mon(void) sd->timeout = td.initial_time; send_arp(sd); + is_ip_conflict_detect_enabled = true; + conflict_state = NETCONFIG_IP_CONFLICT_STATE_CONFLICT_NOT_DETECTED; return sd; } } @@ -412,6 +414,8 @@ void stop_ip_conflict_mon() } g_free(sd); sd = NULL; + is_ip_conflict_detect_enabled = false; + conflict_state = NETCONFIG_IP_CONFLICT_STATE_UNKNOWN; INFO("Monitoring stopped"); } @@ -442,8 +446,6 @@ gboolean handle_ip_conflict_set_enable(Wifi *wifi, GDBusMethodInvocation *contex if (detect == false) { - is_ip_conflict_detect_enabled = false; - conflict_state = NETCONFIG_IP_CONFLICT_STATE_UNKNOWN; if (sd != NULL) stop_ip_conflict_mon(); else { @@ -452,8 +454,6 @@ gboolean handle_ip_conflict_set_enable(Wifi *wifi, GDBusMethodInvocation *contex return TRUE; } } else { - is_ip_conflict_detect_enabled = true; - conflict_state = NETCONFIG_IP_CONFLICT_STATE_CONFLICT_NOT_DETECTED; if (sd == NULL) { if (start_ip_conflict_mon() == NULL) { INFO("Failed to start IP conflict monitoring"); -- 2.7.4