name = connman_network_get_string(value,
CONNMAN_PROPERTY_ID_NAME);
if (name != NULL) {
- err = connman_network_connect(network);
+ err = __connman_network_connect(network);
if (err == 0 || err == -EINPROGRESS)
return;
}
{
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;
+ }
}
/**