X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fgnome-ask-password-agent.vala;h=84f25497309b97c905851839b9d35371230d556e;hp=61bbba0f7c8b9077b3163109c7384a2e844609c5;hb=23e1e0c4a3bc93fb841ac9575953ed5d0ef5282d;hpb=d0ef2204b4256189afc2188f0765338d616ca757 diff --git a/src/gnome-ask-password-agent.vala b/src/gnome-ask-password-agent.vala index 61bbba0f7..84f254973 100644 --- a/src/gnome-ask-password-agent.vala +++ b/src/gnome-ask-password-agent.vala @@ -19,7 +19,6 @@ using Gtk; using GLib; -using DBus; using Linux; using Posix; using Notify; @@ -102,14 +101,19 @@ public class MyStatusIcon : StatusIcon { activate.connect(status_icon_activate); } - void file_monitor_changed(GLib.File file, GLib.File? other_file, GLib.FileMonitorEvent event_type) throws GLib.Error { + void file_monitor_changed(GLib.File file, GLib.File? other_file, GLib.FileMonitorEvent event_type) { if (!file.get_basename().has_prefix("ask.")) return; if (event_type == FileMonitorEvent.CREATED || - event_type == FileMonitorEvent.DELETED) - look_for_password(); + event_type == FileMonitorEvent.DELETED) { + try { + look_for_password(); + } catch (Error e) { + show_error(e.message); + } + } } void look_for_password() throws GLib.Error { @@ -198,7 +202,7 @@ public class MyStatusIcon : StatusIcon { return true; } - void status_icon_activate() throws GLib.Error { + void status_icon_activate() { if (current == null) return; @@ -222,24 +226,28 @@ public class MyStatusIcon : StatusIcon { int to_process; - Process.spawn_async_with_pipes( - null, - { "/usr/bin/pkexec", "/lib/systemd/systemd-reply-password", result == ResponseType.OK ? "1" : "0", socket }, - null, - 0, - null, - null, - out to_process, - null, - null); - - OutputStream stream = new UnixOutputStream(to_process, true); + try { + Process.spawn_async_with_pipes( + null, + { "/usr/bin/pkexec", "/lib/systemd/systemd-reply-password", result == ResponseType.OK ? "1" : "0", socket }, + null, + 0, + null, + null, + out to_process, + null, + null); + + OutputStream stream = new UnixOutputStream(to_process, true); #if LIBNOTIFY07 - stream.write(password.data, null); + stream.write(password.data, null); #else - stream.write(password, password.length, null); + stream.write(password, password.length, null); #endif + } catch (Error e) { + show_error(e.message); + } } } @@ -261,8 +269,6 @@ int main(string[] args) { MyStatusIcon i = new MyStatusIcon(); Gtk.main(); - } catch (DBus.Error e) { - show_error(e.message); } catch (GLib.Error e) { show_error(e.message); }