main: Cleanup ipconfig after service
authorDaniel Wagner <daniel.wagner@bmw-carit.de>
Wed, 21 Sep 2011 09:33:21 +0000 (11:33 +0200)
committerDaniel Wagner <daniel.wagner@bmw-carit.de>
Wed, 21 Sep 2011 09:36:46 +0000 (11:36 +0200)
Since service.c depends on ipconfig.c, __connman_service_cleanup()
should be called before __connman_ipconfig_cleanup().

connmand[4787]: src/ipconfig.c:__connman_ipconfig_cleanup()
connmand[4787]: em1 {remove} index 2
connmand[4787]: wlan0 {remove} index 3
connmand[4787]: src/ipconfig.c:connman_ipconfig_unref() ipconfig 0x6b0460 refcount 1
connmand[4787]: src/ipconfig.c:connman_ipconfig_unref() ipconfig 0x6b04c0 refcount 1
connmand[4787]: hso0 {remove} index 4
connmand[4787]: src/service.c:__connman_service_cleanup()
connmand[4787]: src/service.c:service_free() service 0x6ae690
connmand[4787]: Service state machine inconsistency detected.
connmand[4787]: src/service.c:stats_stop() service 0x6ae690
connmand[4787]: src/service.c:services_changed()
connmand[4787]: src/ipconfig.c:connman_ipconfig_unref() ipconfig 0x6b0460 refcount 0
connmand[4787]: src/ipconfig.c:__connman_ipconfig_disable() ipconfig 0x6b0460

Breakpoint 1, g_log (log_domain=0x34b78adc06 "GLib", log_level=G_LOG_LEVEL_CRITICAL, format=
    0x34b78b6710 "%s: assertion `%s' failed") at gmessages.c:573
573     {
(gdb) bt
#0  g_log (log_domain=0x34b78adc06 "GLib", log_level=G_LOG_LEVEL_CRITICAL, format=
    0x34b78b6710 "%s: assertion `%s' failed") at gmessages.c:573
#1  0x00000034b7831d35 in g_hash_table_lookup (hash_table=0x0, key=0x3) at ghash.c:897
#2  0x000000000044e9a4 in __connman_ipconfig_disable (ipconfig=0x6b0460) at src/ipconfig.c:1678
#3  0x000000000044de9d in connman_ipconfig_unref (ipconfig=0x6b0460) at src/ipconfig.c:1279
#4  0x0000000000440750 in service_free (user_data=0x6ae690) at src/service.c:3416
#5  0x00000034b785aac8 in real_node_free (node=0x6a2ed0, seq=0x6a3de0) at gsequence.c:1755
#6  0x00000034b785aaa2 in real_node_free (node=0x6a2a70, seq=0x6a3de0) at gsequence.c:1751
#7  0x00000034b785ae39 in g_sequence_free (seq=0x6a3de0) at gsequence.c:283
#8  0x0000000000444b53 in __connman_service_cleanup () at src/service.c:5617
#9  0x000000000042fb75 in main (argc=1, argv=0x7fffffffe678) at src/main.c:401

src/main.c

index aec634d..f36c4f5 100644 (file)
@@ -385,7 +385,6 @@ int main(int argc, char *argv[])
        __connman_proxy_cleanup();
        __connman_task_cleanup();
        __connman_rtnl_cleanup();
-       __connman_ipconfig_cleanup();
        __connman_resolver_cleanup();
 
        __connman_clock_cleanup();
@@ -399,6 +398,7 @@ int main(int argc, char *argv[])
        __connman_device_cleanup();
        __connman_network_cleanup();
        __connman_service_cleanup();
+       __connman_ipconfig_cleanup();
        __connman_notifier_cleanup();
        __connman_technology_cleanup();