Disconnect service on removal if still connected
[connman] / src / service.c
index 88b131a..48bb49c 100644 (file)
@@ -412,13 +412,11 @@ static DBusMessage *remove_service(DBusConnection *conn,
        if (service->type == CONNMAN_SERVICE_TYPE_ETHERNET)
                return __connman_error_not_supported(msg);
 
-       if (service->network != NULL) {
-               int err;
+       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);