Fix broken handling of last network when disconnectiong manually
authorMarcel Holtmann <marcel@holtmann.org>
Sun, 17 May 2009 20:46:20 +0000 (13:46 -0700)
committerMarcel Holtmann <marcel@holtmann.org>
Sun, 17 May 2009 20:46:20 +0000 (13:46 -0700)
src/device.c
src/network.c

index ff51943..374bc67 100644 (file)
@@ -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;
index e09bdca..ceeb0bd 100644 (file)
@@ -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)