mirror of
https://github.com/SELinuxProject/selinux
synced 2025-03-07 18:57:31 +00:00
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> |
||
---|---|---|
.. | ||
ru | ||
.gitignore | ||
COPYING | ||
Makefile | ||
org.selinux.Restorecond.service | ||
restore.c | ||
restore.h | ||
restorecond_user.conf | ||
restorecond.8 | ||
restorecond.c | ||
restorecond.conf | ||
restorecond.desktop | ||
restorecond.h | ||
restorecond.init | ||
restorecond.service | ||
stringslist.c | ||
stringslist.h | ||
user.c | ||
utmpwatcher.c | ||
utmpwatcher.h | ||
VERSION | ||
watch.c |