Refactoring sd->timer_id for ip-conflict-detect code 34/215334/1
authorINSUN PYO <insun.pyo@samsung.com>
Mon, 7 Oct 2019 06:11:16 +0000 (15:11 +0900)
committerINSUN PYO <insun.pyo@samsung.com>
Mon, 7 Oct 2019 06:13:19 +0000 (15:13 +0900)
0  0xb6ab5634 in raise () from /lib/libpthread.so.0
1  0xb6c23774 in g_logv (log_domain=0xb6c23774 <g_logv+772> "\300\377\377\352", log_level=log_level@entry=G_LOG_LEVEL_CRITICAL, format=format@entry=0x5 <error: Cannot access memory at address 0x5>, args=..., args@entry=...) at gmessages.c:1357
2  0xb6c23824 in g_log (log_domain=<optimized out>, log_level=log_level@entry=G_LOG_LEVEL_CRITICAL, format=0xb6c73a7c "%s: assertion '%s' failed") at gmessages.c:1398
3  0xb6c23dc0 in g_return_if_fail_warning (log_domain=<optimized out>, pretty_function=<optimized out>, expression=<optimized out>) at gmessages.c:2688
4  0xb6c1b374 in g_source_remove (tag=0) at gmain.c:2351
5  0xb6f46058 in send_arp (data=0xb79817d0) at /usr/src/debug/net-config-1.1.146/src/ip-conflict-detect.c:363
6  0xb6f46468 in start_ip_conflict_mon () at /usr/src/debug/net-config-1.1.146/src/ip-conflict-detect.c:408
7  0xb6f3c34c in _service_signal_cb (conn=<optimized out>, name=<optimized out>, path=<optimized out>, interface=<optimized out>, sig=0xb5231540 "", param=0xb5236298, user_data=0x0) at /usr/src/debug/net-config-1.1.146/src/signal-handler.c:447
8  0xb6dec980 in emit_signal_instance_in_idle_cb (data=0xb52074c8) at gdbusconnection.c:4660
9  0xb6c1c654 in g_main_dispatch (context=0xb7960d70) at gmain.c:3234
10 g_main_context_dispatch (context=context@entry=0xb7960d70) at gmain.c:3887
11 0xb6c1c9e4 in g_main_context_iterate (context=0xb7960d70, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3960
12 0xb6c1cd44 in g_main_loop_run (loop=0xb795e3c0) at gmain.c:4156
13 0xb6f21a20 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/net-config-1.1.146/src/main.c:152

Change-Id: I59d0eb7dc0b1e4ce5eed8795c2d25a8ca8c31ad0

src/ip-conflict-detect.c

index 9021c04..2aad203 100755 (executable)
@@ -136,7 +136,7 @@ static gboolean __arp_reply_timeout_cb(gpointer data)
                initial_bursts = true;
        }
 
-       if (sd->timer_id > 0)
+       if (sd->timer_id)
                g_source_remove(sd->timer_id);
        sd->timer_id = g_timeout_add(sd->timeout, send_arp, sd);
        return G_SOURCE_REMOVE;
@@ -360,8 +360,10 @@ static gboolean send_arp(gpointer data)
                DBG("Sent ARP Packet \n");
        }
 
-       g_source_remove(sd->timer_id);
-       sd->timer_id = 0;
+       if (sd->timer_id) {
+               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;
@@ -395,8 +397,6 @@ struct sock_data * start_ip_conflict_mon(void)
        }
        sd->chk_conflict_data_id = -1;
        sd->chk_conflict_sd = -1;
-       sd->timer_id = 0;
-       sd->iteration = 0;
 
        if (__open_channel_and_sock(sd) == -1) {
                INFO("__open_channel_and_sock failed");
@@ -423,9 +423,8 @@ void stop_ip_conflict_mon()
        if (-1 < sd->chk_conflict_sd)
                __close_channel_and_sock(sd);
 
-       if (sd->timer_id > 0) {
+       if (sd->timer_id) {
                g_source_remove(sd->timer_id);
-               sd->timer_id = 0;
        }
        g_free(sd);
        sd = NULL;