wpad: Reference count service properly
authorTomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Mon, 17 Oct 2011 12:52:23 +0000 (15:52 +0300)
committerSamuel Ortiz <sameo@linux.intel.com>
Thu, 20 Oct 2011 22:20:58 +0000 (00:20 +0200)
src/wpad.c

index 931423c..dd25c7c 100644 (file)
@@ -170,6 +170,7 @@ int __connman_wpad_start(struct connman_service *service)
        g_resolv_lookup_hostname(wpad->resolv, wpad->hostname,
                                                        wpad_result, wpad);
 
+       connman_service_ref(service);
        g_hash_table_replace(wpad_list, GINT_TO_POINTER(index), wpad);
 
        return 0;
@@ -188,7 +189,8 @@ void __connman_wpad_stop(struct connman_service *service)
        if (index < 0)
                return;
 
-       g_hash_table_remove(wpad_list, GINT_TO_POINTER(index));
+       if (g_hash_table_remove(wpad_list, GINT_TO_POINTER(index)) == TRUE)
+               connman_service_unref(service);
 }
 
 int __connman_wpad_init(void)