service: Avoid autoconnect from scan
authorMohamed Abbas <mabbas@linux.intel.com>
Wed, 22 Dec 2010 19:58:02 +0000 (11:58 -0800)
committerSamuel Ortiz <sameo@linux.intel.com>
Thu, 23 Dec 2010 11:45:27 +0000 (12:45 +0100)
If we are scanning then don't try to run autoconnect while
we are adding network from scan, at the end of scan auto
connect will be called.

src/connman.h
src/device.c
src/service.c

index 7c926fe..fb26999 100644 (file)
@@ -352,6 +352,8 @@ int __connman_device_disable(struct connman_device *device);
 int __connman_device_disable_persistent(struct connman_device *device);
 int __connman_device_disconnect(struct connman_device *device);
 
+connman_bool_t __connman_device_scanning(struct connman_device *device);
+
 connman_bool_t __connman_device_has_driver(struct connman_device *device);
 
 void __connman_device_set_reconnect(struct connman_device *device,
index 957be7c..c71529e 100644 (file)
@@ -815,6 +815,11 @@ void __connman_device_cleanup_networks(struct connman_device *device)
                                        remove_unavailable_network, NULL);
 }
 
+connman_bool_t __connman_device_scanning(struct connman_device *device)
+{
+       return device->scanning;
+}
+
 /**
  * connman_device_set_scanning:
  * @device: device structure
index 6ca80cd..c7aed25 100644 (file)
@@ -4125,6 +4125,7 @@ static void update_from_network(struct connman_service *service,
 struct connman_service * __connman_service_create_from_network(struct connman_network *network)
 {
        struct connman_service *service;
+       struct connman_device *device;
        const char *ident, *group;
        char *name;
        int index;
@@ -4185,8 +4186,11 @@ struct connman_service * __connman_service_create_from_network(struct connman_ne
 
        service_register(service);
 
-       if (service->favorite == TRUE)
-               __connman_service_auto_connect();
+       if (service->favorite == TRUE) {
+               device = connman_network_get_device(service->network);
+               if (device && __connman_device_scanning(device) == FALSE)
+                       __connman_service_auto_connect();
+       }
 
        return service;
 }