From: Patrik Flykt Date: Wed, 1 Feb 2012 14:43:55 +0000 (+0200) Subject: device: Return success if scan succeeded for at least one device X-Git-Tag: accepted/2.0alpha-wayland/20121110.002834~636 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1c5a44950001604b346480d3dfc2a6c0596a5146;p=profile%2Fivi%2Fconnman.git device: Return success if scan succeeded for at least one device Return success on requesting device scan if at least one of the devices reported success. If scanning was unsuccessful for all devices, return the error from the last one. --- diff --git a/src/device.c b/src/device.c index 55a6d8e..e191194 100644 --- a/src/device.c +++ b/src/device.c @@ -1159,6 +1159,8 @@ struct connman_device *__connman_device_find_device( int __connman_device_request_scan(enum connman_service_type type) { + connman_bool_t success = FALSE; + int last_err = -ENOSYS; GSList *list; int err; @@ -1188,14 +1190,18 @@ int __connman_device_request_scan(enum connman_service_type type) } err = device_scan(device); - if (err < 0 && err != -EINPROGRESS) { - DBG("err %d", err); - /* XXX maybe only a continue? */ - return err; + if (err == 0 || err == -EALREADY || err == -EINPROGRESS) { + success = TRUE; + } else { + last_err = err; + DBG("device %p err %d", device, err); } } - return 0; + if (success == TRUE) + return 0; + + return last_err; } int __connman_device_request_hidden_scan(struct connman_device *device,