diff options
author | Mohamed Abbas <mabbas@linux.intel.com> | 2010-12-08 16:37:12 -0800 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2010-12-13 13:11:34 +0100 |
commit | 0dafb0f80440a5d24b43b449bdecb5cd79b06242 (patch) | |
tree | 76221e08f7aed931e234e0ac7b8dd042c57bee0d /src | |
parent | 272115f5e3b52bf136303d81d6b3728b0261e402 (diff) | |
download | connman-0dafb0f80440a5d24b43b449bdecb5cd79b06242.tar.gz connman-0dafb0f80440a5d24b43b449bdecb5cd79b06242.tar.bz2 connman-0dafb0f80440a5d24b43b449bdecb5cd79b06242.zip |
network: Keep device->connections counter in sync
Calling __connman_device_decrease_connections from set_connnected
can decrease the connections counter twice on disconnect.
Diffstat (limited to 'src')
-rw-r--r-- | src/device.c | 2 | ||||
-rw-r--r-- | src/network.c | 5 |
2 files changed, 5 insertions, 2 deletions
diff --git a/src/device.c b/src/device.c index b8110c47..f2b8cf29 100644 --- a/src/device.c +++ b/src/device.c @@ -250,6 +250,8 @@ int __connman_device_disable(struct connman_device *device) return err; } + device->connections = 0; + device->powered_pending = FALSE; device->powered = FALSE; diff --git a/src/network.c b/src/network.c index 0e225225..49ffa733 100644 --- a/src/network.c +++ b/src/network.c @@ -770,8 +770,6 @@ static gboolean set_connected(gpointer user_data) __connman_device_set_network(network->device, NULL); network->hidden = FALSE; - __connman_device_decrease_connections(network->device); - service = __connman_service_lookup_from_network(network); __connman_service_indicate_state(service, @@ -807,6 +805,9 @@ int connman_network_set_connected(struct connman_network *network, if (network->connected == connected) return -EALREADY; + if (connected == FALSE) + __connman_device_decrease_connections(network->device); + network->connected = connected; set_connected(network); |