[Xfce4-commits] [apps/xfce4-screensaver] 209/425: Lock the screen on systemd sleep under systemd

noreply at xfce.org noreply at xfce.org
Mon Oct 15 01:50:56 CEST 2018


This is an automated email from the git hooks/post-receive script.

b   l   u   e   s   a   b   r   e       p   u   s   h   e   d       a       c   o   m   m   i   t       t   o       b   r   a   n   c   h       m   a   s   t   e   r   
   in repository apps/xfce4-screensaver.

commit f1739c03e00a51e87bd49d04827e5b765d1c70de
Author: Faidon Liambotis <paravoid at debian.org>
Date:   Tue Sep 15 01:31:07 2015 +0300

    Lock the screen on systemd sleep under systemd
    
    Add a handler for the PrepareForSleep event on the system bus under
    systemd and lock the screen in such an event. This addresses the issue
    where "systemctl suspend" suspends the system but the system isn't
    locked on resume, with the obvious negative security connotations.
---
 src/gs-listener-dbus.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/src/gs-listener-dbus.c b/src/gs-listener-dbus.c
index 3a73612..96b3f6a 100644
--- a/src/gs-listener-dbus.c
+++ b/src/gs-listener-dbus.c
@@ -1655,6 +1655,17 @@ listener_dbus_handle_system_message (DBusConnection *connection,
 			}
 
 			return DBUS_HANDLER_RESULT_HANDLED;
+		} else if (dbus_message_is_signal (message, SYSTEMD_LOGIND_INTERFACE, "PrepareForSleep")) {
+			gboolean active;
+			if (dbus_message_get_args (message, NULL,
+				                   DBUS_TYPE_BOOLEAN, &active,
+				                   DBUS_TYPE_INVALID) && active) {
+				gs_debug ("systemd notified that system is about to sleep");
+				g_signal_emit (listener, signals [LOCK], 0);
+			} else {
+				gs_debug ("cannot parse PrepareForSleep");
+			}
+			return DBUS_HANDLER_RESULT_HANDLED;
 		} else if (dbus_message_is_signal (message, DBUS_INTERFACE_PROPERTIES, "PropertiesChanged")) {
 
 			if (_listener_message_path_is_our_session (listener, message)) {
@@ -2273,6 +2284,12 @@ gs_listener_acquire (GSListener *listener,
 			dbus_bus_add_match (listener->priv->system_connection,
 					    "type='signal'"
 					    ",sender='"SYSTEMD_LOGIND_SERVICE"'"
+					    ",interface='"SYSTEMD_LOGIND_INTERFACE"'"
+					    ",member='PrepareForSleep'",
+					    NULL);
+			dbus_bus_add_match (listener->priv->system_connection,
+					    "type='signal'"
+					    ",sender='"SYSTEMD_LOGIND_SERVICE"'"
 					    ",interface='"DBUS_INTERFACE_PROPERTIES"'"
 					    ",member='PropertiesChanged'",
 					    NULL);

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list