diff options
author | Faidon Liambotis <[email protected]> | 2015-09-15 01:26:01 +0300 |
---|---|---|
committer | Monsta <[email protected]> | 2015-10-14 11:08:27 +0300 |
commit | 306599bdbae51788ed2c2faa061adc6966fd814d (patch) | |
tree | 740e6690126dcb060533a47773560b97e8d5b41c /savers/floaters.c | |
parent | b8dcae2ef6ca908250ac5d7c86591f556a37c4e8 (diff) | |
download | mate-screensaver-306599bdbae51788ed2c2faa061adc6966fd814d.tar.bz2 mate-screensaver-306599bdbae51788ed2c2faa061adc6966fd814d.tar.xz |
Fix systemd event handling
Right now the systemd event handling is not actually working at all.
This happens because _listener_message_path_is_our_session() has code to
check if the event came to our session (e.g. "10") and, under systemd,
does this by trying to compare it with the object path, by stripping the
/org/freedesktop/login1/session/ prefix.
However, under -at least recent versions- of systemd, the session ID
part of the path is escaped separately, and following D-Bus rules
initial numbers are escaped. In the example above, the obj_path is
/org/freedesktop/login1/session/_310, so the comparison actually fails.
Port a fix that has been present on various distributions (e.g. Arch)
and pieces of software (e.g. cinnamon-screensaver) since at least March
2013. The original author is Peter de Ridder <[email protected]>.
The bug and the fix can both be easily verified by running "loginctl
lock-sessions".
Diffstat (limited to 'savers/floaters.c')
0 files changed, 0 insertions, 0 deletions