diff --git a/src/backend/session/dbus/logind.rs b/src/backend/session/dbus/logind.rs index 56e86e7..a1deb65 100644 --- a/src/backend/session/dbus/logind.rs +++ b/src/backend/session/dbus/logind.rs @@ -59,6 +59,7 @@ use calloop::{ }; struct LogindSessionImpl { + session_id: String, conn: RefCell, session_path: DbusPath<'static>, active: AtomicBool, @@ -171,6 +172,7 @@ impl LogindSession { let conn = RefCell::new(conn); let internal = Rc::new(LogindSessionImpl { + session_id: session_id.clone(), conn, session_path, active: AtomicBool::new(true), @@ -260,6 +262,7 @@ impl LogindSessionImpl { }; if &*message.interface().unwrap() == "org.freedesktop.login1.Manager" && &*message.member().unwrap() == "SessionRemoved" + && message.get1::().unwrap() == self.session_id { error!(self.logger, "Session got closed by logind"); //Ok... now what?