[glib: 1/2] trash portal: Handle portal failures




commit 88032cb541fd5be40284dd10a58f7080e64b4979
Author: Ryan Gonzalez <rymg19 gmail com>
Date:   Tue Sep 15 18:06:56 2020 -0500

    trash portal: Handle portal failures
    
    Previously, only whether or not the D-Bus call itself succeeded was
    checked, regardless of the result code from the actual trash operation.

 gio/gtrashportal.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)
---
diff --git a/gio/gtrashportal.c b/gio/gtrashportal.c
index 9922be21f..03c933297 100644
--- a/gio/gtrashportal.c
+++ b/gio/gtrashportal.c
@@ -74,8 +74,9 @@ g_trash_portal_trash_file (GFile   *file,
   GUnixFDList *fd_list = NULL;
   int fd, fd_in, errsv;
   gboolean ret = FALSE;
+  guint portal_result = 0;
   GXdpTrash *proxy;
-  
+
   proxy = ensure_trash_portal ();
   if (proxy == NULL)
     {
@@ -114,11 +115,17 @@ g_trash_portal_trash_file (GFile   *file,
   ret = gxdp_trash_call_trash_file_sync (proxy,
                                          g_variant_new_handle (fd_in),
                                          fd_list,
-                                         NULL,
+                                         &portal_result,
                                          NULL,
                                          NULL,
                                          error);
 
+  if (ret && portal_result != 1)
+    {
+      g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, "Trash portal failed on %s", path);
+      ret = FALSE;
+    }
+
  out:
   g_clear_object (&fd_list);
   g_free (path);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]