From 4b3e19dc14b737766ae0cc670c113df10d950c57 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Wed, 20 May 2009 14:43:16 -0700 Subject: [PATCH] Take reference when network is connected and assigned to device --- src/device.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/device.c b/src/device.c index 848c6f9..4525e30 100644 --- a/src/device.c +++ b/src/device.c @@ -1714,17 +1714,25 @@ void __connman_device_set_network(struct connman_device *device, { const char *name; + if (device->network == network) + return; + + if (device->network != NULL) + connman_network_unref(device->network); + if (network != NULL) { name = connman_network_get_string(network, CONNMAN_PROPERTY_ID_NAME); g_free(device->last_network); device->last_network = g_strdup(name); + + device->network = connman_network_ref(network); } else { g_free(device->last_network); device->last_network = NULL; - } - device->network = network; + device->network = NULL; + } } /** -- 1.7.9.5