Remove GSource before calling g_timeout_add()
[platform/core/connectivity/net-config.git] / src / ip-conflict-detect.c
index 4f9fc98..a2492e6 100755 (executable)
@@ -136,6 +136,8 @@ static gboolean __arp_reply_timeout_cb(gpointer data)
                initial_bursts = true;
        }
 
+       if (sd->timer_id > 0)
+               g_source_remove(sd->timer_id);
        sd->timer_id = g_timeout_add(sd->timeout, send_arp, sd);
        return G_SOURCE_REMOVE;
 }
@@ -324,6 +326,7 @@ static gboolean send_arp(gpointer data)
        }
 
        g_source_remove(sd->timer_id);
+       sd->timer_id = 0;
 
        if (conflict_state == NETCONFIG_IP_CONFLICT_STATE_CONFLICT_DETECTED || initial_bursts)
                sd->timeout = BURST_ARP_SEND_TIME;