summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2009-09-13 17:34:20 +0200
committerMarcel Holtmann <marcel@holtmann.org>2009-09-13 17:34:20 +0200
commite89ac1c011a9204353f31669846a807fa4bcc8d9 (patch)
tree0567e5c47dd15fddf440d35b4c0a865441eb1da3
parentd51fb7b022ba0c6ffce27028499a047072885f36 (diff)
downloadconnman-e89ac1c011a9204353f31669846a807fa4bcc8d9.tar.gz
connman-e89ac1c011a9204353f31669846a807fa4bcc8d9.tar.bz2
connman-e89ac1c011a9204353f31669846a807fa4bcc8d9.zip
Fix issue with missing scanning after disconnect
-rw-r--r--src/device.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/device.c b/src/device.c
index bc785137..c7efa1d1 100644
--- a/src/device.c
+++ b/src/device.c
@@ -106,6 +106,14 @@ static void reset_scan_trigger(struct connman_device *device)
}
}
+static void force_scan_trigger(struct connman_device *device)
+{
+ clear_scan_trigger(device);
+
+ device->scan_timeout = g_timeout_add_seconds(5,
+ device_scan_trigger, device);
+}
+
static const char *type2description(enum connman_device_type type)
{
switch (type) {
@@ -1277,6 +1285,8 @@ int __connman_device_scan(struct connman_device *device)
if (device->powered == FALSE)
return -ENOLINK;
+ reset_scan_trigger(device);
+
return device->driver->scan(device);
}
@@ -1518,6 +1528,9 @@ int connman_device_set_disconnected(struct connman_device *device,
device->disconnected = disconnected;
+ if (disconnected == TRUE)
+ force_scan_trigger(device);
+
return 0;
}