selinux/restorecond
Nicolas Iooss 252925ccdf
restorecond: migrate to GDbus API provided by glib-gio
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=955940 states:

    dbus-glib is a deprecated D-Bus library with some significant design
    flaws, and is essentially unmaintained.

restorecond uses dbus-glib in order to spawn as a D-Bus service on the
session bus of users. This makes restorecond stays so long as the user
session exists.

Migrate from dbus-glib to GDbus API for the implementation of this
feature.

Moreover restorecond currently uses a D-Bus signal to trigger starting
the service. This is quite inappropriate, as stated for example in
https://dbus.freedesktop.org/doc/dbus-tutorial.html#members

    Methods are operations that can be invoked on an object, with
    optional input (aka arguments or "in parameters") and output (aka
    return values or "out parameters"). Signals are broadcasts from the
    object to any interested observers of the object; signals may
    contain a data payload.

Implementing a method is more appropriate. It appears that all D-Bus
users can implement method Ping from interface org.freedesktop.DBus.Peer
(https://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-peer)
and that calling this method is enough to trigger the launch of the
service. This can be tested in a shell by running:

    gdbus call --session --dest=org.selinux.Restorecond \
        --object-path=/ --method=org.freedesktop.DBus.Peer.Ping

As this method is automatically provided, there is no need to implement
its handling in the service.

Fixed: https://github.com/SELinuxProject/selinux/issues/217

Signed-off-by: Nicolas Iooss <nicolas.iooss@m4x.org>
2020-04-26 15:14:03 +02:00
..
ru Add man pages translation by Olesya Gerasimenko 2019-01-28 12:03:57 +01:00
.gitignore restorecond: Add gitignore 2016-11-16 11:20:05 -05:00
COPYING Add COPYING files for new subdirs. 2016-11-16 11:19:51 -05:00
Makefile restorecond: migrate to GDbus API provided by glib-gio 2020-04-26 15:14:03 +02:00
org.selinux.Restorecond.service Move policycoreutils/restorecond to restorecond. 2016-11-16 11:19:50 -05:00
restore.c restorecond: Fix redundant console log output error 2019-11-15 08:12:16 -05:00
restore.h restorecond: break source dependency on policycoreutils/setfiles 2016-11-16 11:19:51 -05:00
restorecond_user.conf Move policycoreutils/restorecond to restorecond. 2016-11-16 11:19:50 -05:00
restorecond.8 Move policycoreutils/restorecond to restorecond. 2016-11-16 11:19:50 -05:00
restorecond.c restorecond: use /run instead of /var/run 2019-03-18 22:07:08 +01:00
restorecond.conf restorecond: use /run instead of /var/run 2019-03-18 22:07:08 +01:00
restorecond.desktop Move policycoreutils/restorecond to restorecond. 2016-11-16 11:19:50 -05:00
restorecond.h restorecond: add noreturn attribute to exitApp() 2017-03-07 14:00:16 -05:00
restorecond.init restorecond: use /run instead of /var/run 2019-03-18 22:07:08 +01:00
restorecond.service Add documentation key in systemd .service files 2019-07-18 09:51:43 -05:00
stringslist.c Move policycoreutils/restorecond to restorecond. 2016-11-16 11:19:50 -05:00
stringslist.h Move policycoreutils/restorecond to restorecond. 2016-11-16 11:19:50 -05:00
user.c restorecond: migrate to GDbus API provided by glib-gio 2020-04-26 15:14:03 +02:00
utmpwatcher.c restorecond: use /run instead of /var/run 2019-03-18 22:07:08 +01:00
utmpwatcher.h Move policycoreutils/restorecond to restorecond. 2016-11-16 11:19:50 -05:00
VERSION Update VERSIONs to 3.0 for release. 2019-11-28 13:46:48 +01:00
watch.c restorecond: Musl compatibility for GLOB_BRACE and GLOB_TILDE 2018-05-17 13:08:34 +08:00