diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2009-09-13 17:34:20 +0200 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2009-09-13 17:34:20 +0200 |
commit | e89ac1c011a9204353f31669846a807fa4bcc8d9 (patch) | |
tree | 0567e5c47dd15fddf440d35b4c0a865441eb1da3 | |
parent | d51fb7b022ba0c6ffce27028499a047072885f36 (diff) | |
download | connman-e89ac1c011a9204353f31669846a807fa4bcc8d9.tar.gz connman-e89ac1c011a9204353f31669846a807fa4bcc8d9.tar.bz2 connman-e89ac1c011a9204353f31669846a807fa4bcc8d9.zip |
Fix issue with missing scanning after disconnect
-rw-r--r-- | src/device.c | 13 |
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; } |