}
if (service->network != NULL) {
- struct connman_device *device;
int err;
- device = connman_network_get_device(service->network);
- if (device != NULL)
- __connman_device_disconnect(device);
-
err = __connman_network_disconnect(service->network);
if (err < 0 && err != -EINPROGRESS)
return __connman_error_failed(msg, -err);
if (service->type == CONNMAN_SERVICE_TYPE_ETHERNET)
return __connman_error_not_supported(msg);
- if (service->network != NULL) {
- struct connman_device *device;
- int err;
-
- device = connman_network_get_device(service->network);
- if (device != NULL)
- __connman_device_disconnect(device);
+ if (service->favorite == FALSE)
+ return __connman_error_not_supported(msg);
- err = __connman_network_disconnect(service->network);
- if (err < 0 && err != -EINPROGRESS)
- return __connman_error_failed(msg, -err);
- }
+ if (service->network != NULL)
+ __connman_network_disconnect(service->network);
connman_service_set_favorite(service, FALSE);
__connman_storage_save_service(service);