summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2019-10-06 22:50:29 +0200
committerThomas Haller <thaller@redhat.com>2019-10-16 08:56:00 +0200
commitc1046dd803ed9c6dc99fbee079caed1a18c75497 (patch)
tree96dcbf942a351ef1fe4a0accf3ce76bb0310a202
parent6ee416d24779ca8872f96f05eb0b294d1cae9e3e (diff)
downloadNetworkManager-c1046dd803ed9c6dc99fbee079caed1a18c75497.tar.gz
libnm: implement nm_device_delete()/nm_device_delete_async() by using GDBusConnection directly
-rw-r--r--libnm/nm-device.c73
1 files changed, 29 insertions, 44 deletions
diff --git a/libnm/nm-device.c b/libnm/nm-device.c
index b4236b6cd6..e509ddf2d2 100644
--- a/libnm/nm-device.c
+++ b/libnm/nm-device.c
@@ -2383,34 +2383,20 @@ nm_device_delete (NMDevice *device,
GCancellable *cancellable,
GError **error)
{
- gboolean ret;
-
g_return_val_if_fail (NM_IS_DEVICE (device), FALSE);
+ g_return_val_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable), FALSE);
+ g_return_val_if_fail (!error || !*error, FALSE);
- ret = nmdbus_device_call_delete_sync (NM_DEVICE_GET_PRIVATE (device)->proxy,
- cancellable, error);
- if (error && *error)
- g_dbus_error_strip_remote_error (*error);
- return ret;
-}
-
-static void
-device_delete_cb (GObject *proxy,
- GAsyncResult *result,
- gpointer user_data)
-{
- GSimpleAsyncResult *simple = user_data;
- GError *error = NULL;
-
- if (nmdbus_device_call_delete_finish (NMDBUS_DEVICE (proxy), result, &error))
- g_simple_async_result_set_op_res_gboolean (simple, TRUE);
- else {
- g_dbus_error_strip_remote_error (error);
- g_simple_async_result_take_error (simple, error);
- }
-
- g_simple_async_result_complete (simple);
- g_object_unref (simple);
+ return _nm_object_dbus_call_sync_void (device,
+ cancellable,
+ g_dbus_proxy_get_object_path (G_DBUS_PROXY (NM_DEVICE_GET_PRIVATE (device)->proxy)),
+ NM_DBUS_INTERFACE_DEVICE,
+ "Delete",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ NM_DBUS_DEFAULT_TIMEOUT_MSEC,
+ TRUE,
+ error);
}
/**
@@ -2429,18 +2415,22 @@ nm_device_delete_async (NMDevice *device,
GAsyncReadyCallback callback,
gpointer user_data)
{
- GSimpleAsyncResult *simple;
-
g_return_if_fail (NM_IS_DEVICE (device));
+ g_return_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable));
- simple = g_simple_async_result_new (G_OBJECT (device), callback, user_data,
- nm_device_delete_async);
- if (cancellable)
- g_simple_async_result_set_check_cancellable (simple, cancellable);
-
- nmdbus_device_call_delete (NM_DEVICE_GET_PRIVATE (device)->proxy,
- cancellable,
- device_delete_cb, simple);
+ _nm_object_dbus_call (device,
+ nm_device_delete_async,
+ cancellable,
+ callback,
+ user_data,
+ g_dbus_proxy_get_object_path (G_DBUS_PROXY (NM_DEVICE_GET_PRIVATE (device)->proxy)),
+ NM_DBUS_INTERFACE_DEVICE,
+ "Disconnect",
+ g_variant_new ("()"),
+ G_VARIANT_TYPE ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ NM_DBUS_DEFAULT_TIMEOUT_MSEC,
+ nm_dbus_connection_call_finish_void_strip_dbus_error_cb);
}
/**
@@ -2459,15 +2449,10 @@ nm_device_delete_finish (NMDevice *device,
GAsyncResult *result,
GError **error)
{
- GSimpleAsyncResult *simple;
-
- g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (device), nm_device_delete_async), FALSE);
+ g_return_val_if_fail (NM_IS_DEVICE (device), FALSE);
+ g_return_val_if_fail (nm_g_task_is_valid (result, device, nm_device_delete_async), FALSE);
- simple = G_SIMPLE_ASYNC_RESULT (result);
- if (g_simple_async_result_propagate_error (simple, error))
- return FALSE;
- else
- return g_simple_async_result_get_op_res_gboolean (simple);
+ return g_task_propagate_boolean (G_TASK (result), error);
}
/**