From 48bac414c7ae3c769fa0f852670a0639cad50ef7 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Sun, 17 May 2009 13:46:20 -0700 Subject: [PATCH] Fix broken handling of last network when disconnectiong manually --- src/device.c | 4 ++++ src/network.c | 2 ++ 2 files changed, 6 insertions(+) diff --git a/src/device.c b/src/device.c index ff51943..374bc67 100644 --- a/src/device.c +++ b/src/device.c @@ -1713,7 +1713,11 @@ void __connman_device_set_network(struct connman_device *device, if (network != NULL) { name = connman_network_get_string(network, CONNMAN_PROPERTY_ID_NAME); + g_free(device->last_network); device->last_network = g_strdup(name); + } else { + g_free(device->last_network); + device->last_network = NULL; } device->network = network; diff --git a/src/network.c b/src/network.c index e09bdca..ceeb0bd 100644 --- a/src/network.c +++ b/src/network.c @@ -786,6 +786,8 @@ int __connman_network_disconnect(struct connman_network *network) if (network->connected == FALSE) return -ENOTCONN; + __connman_device_set_network(network->device, NULL); + connman_element_unregister_children(&network->element); if (network->driver && network->driver->disconnect) -- 1.7.9.5