dbusService: Don't double-wrap remote errors

Returning a GLib.Error from a method invocation will encode the
error when sent over the wire. In case the error itself is already
an encoded remote error, just passing it on will result in double
wrapping.

Avoid that by stripping any remote error information before
returning it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3159>
(cherry picked from commit a5d33026f0)
This commit is contained in:
Florian Müllner 2024-01-31 16:16:04 +01:00
parent 56660cf878
commit addee680a5

View file

@ -75,6 +75,7 @@ export class ServiceImplementation {
return false;
if (error instanceof GLib.Error) {
Gio.DBusError.strip_remote_error(error);
invocation.return_gerror(error);
} else {
let name = error.name;