diff options
author | Fabiano Fidencio <fidencio@profusion.mobi> | 2010-09-21 00:23:12 -0300 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2010-09-27 03:25:05 +0200 |
commit | 07459bb6b92268beb2599f65cf195708d88c51cc (patch) | |
tree | f533168f2e656f3de37a53293b60b1a27b8580be /src/dbus-manager.c | |
parent | 66d9b3b59551a33398b2201662af5c8c17a367c9 (diff) |
sysv: optionally disable of SysV init/rcN.d support at compile time
This patch adds a cpp definition HAVE_SYSV_COMPAT that is used to
isolate code dealing with /etc/init.d and /etc/rcN.d for systems where
it does not make sense (one that does not use sysv or one that is fully
systemd native).
The patch tries to be as little intrusive as possible, however in
order to minimize the number of #ifdef'ed regions I've reordered some
code in path-lookup.c:lookup_paths_init() where all code dealing with
sysv is now isolated under running_as == MANAGER_SYSTEM as well.
Moreover, In struct Service, some fields were rearranged to reduce
the number of ifdefs.
Lennart's suggestions were fixed and squashed with the original patch,
that was sent by Gustavo Sverzut Barbieri (barbieri@profusion.mobi).
Diffstat (limited to 'src/dbus-manager.c')
-rw-r--r-- | src/dbus-manager.c | 49 |
1 files changed, 37 insertions, 12 deletions
diff --git a/src/dbus-manager.c b/src/dbus-manager.c index efff06a18e..3754a0ca8b 100644 --- a/src/dbus-manager.c +++ b/src/dbus-manager.c @@ -27,14 +27,16 @@ #include "strv.h" #include "bus-errors.h" -#define BUS_MANAGER_INTERFACE \ - " <interface name=\"org.freedesktop.systemd1.Manager\">\n" \ +#define BUS_MANAGER_INTERFACE_BEGIN \ + " <interface name=\"org.freedesktop.systemd1.Manager\">\n" + +#define BUS_MANAGER_INTERFACE_METHODS \ " <method name=\"GetUnit\">\n" \ " <arg name=\"name\" type=\"s\" direction=\"in\"/>\n" \ " <arg name=\"unit\" type=\"o\" direction=\"out\"/>\n" \ " </method>\n" \ " <method name=\"GetUnitByPID\">\n" \ - " <arg name=\"pid\" type=\"u\" direction=\"in\"/>\n" \ + " <arg name=\"pid\" type=\"u\" direction=\"in\"/>\n" \ " <arg name=\"unit\" type=\"o\" direction=\"out\"/>\n" \ " </method>\n" \ " <method name=\"LoadUnit\">\n" \ @@ -107,7 +109,9 @@ " </method>\n" \ " <method name=\"UnsetEnvironment\">\n" \ " <arg name=\"names\" type=\"as\" direction=\"in\"/>\n" \ - " </method>\n" \ + " </method>\n" + +#define BUS_MANAGER_INTERFACE_SIGNALS \ " <signal name=\"UnitNew\">\n" \ " <arg name=\"id\" type=\"s\"/>\n" \ " <arg name=\"unit\" type=\"o\"/>\n" \ @@ -124,7 +128,10 @@ " <arg name=\"id\" type=\"u\"/>\n" \ " <arg name=\"job\" type=\"o\"/>\n" \ " <arg name=\"success\" type=\"b\"/>\n" \ - " </signal>" \ + " </signal>" + + +#define BUS_MANAGER_INTERFACE_PROPERTIES_GENERAL \ " <property name=\"Version\" type=\"s\" access=\"read\"/>\n" \ " <property name=\"RunningAs\" type=\"s\" access=\"read\"/>\n" \ " <property name=\"StartupTimestamp\" type=\"t\" access=\"read\"/>\n" \ @@ -138,16 +145,32 @@ " <property name=\"Environment\" type=\"as\" access=\"read\"/>\n" \ " <property name=\"ConfirmSpawn\" type=\"b\" access=\"read\"/>\n" \ " <property name=\"ShowStatus\" type=\"b\" access=\"read\"/>\n" \ - " <property name=\"SysVConsole\" type=\"b\" access=\"read\"/>\n" \ " <property name=\"UnitPath\" type=\"as\" access=\"read\"/>\n" \ - " <property name=\"SysVInitPath\" type=\"as\" access=\"read\"/>\n" \ - " <property name=\"SysVRcndPath\" type=\"as\" access=\"read\"/>\n" \ " <property name=\"NotifySocket\" type=\"s\" access=\"read\"/>\n" \ " <property name=\"ControlGroupHierarchy\" type=\"s\" access=\"read\"/>\n" \ " <property name=\"MountAuto\" type=\"b\" access=\"read\"/>\n" \ - " <property name=\"SwapAuto\" type=\"b\" access=\"read\"/>\n" \ + " <property name=\"SwapAuto\" type=\"b\" access=\"read\"/>\n" + +#ifdef HAVE_SYSV_COMPAT +#define BUS_MANAGER_INTERFACE_PROPERTIES_SYSV \ + " <property name=\"SysVConsole\" type=\"b\" access=\"read\"/>\n" \ + " <property name=\"SysVInitPath\" type=\"as\" access=\"read\"/>\n" \ + " <property name=\"SysVRcndPath\" type=\"as\" access=\"read\"/>\n" +#else +#define BUS_MANAGER_INTERFACE_PROPERTIES_SYSV +#endif + +#define BUS_MANAGER_INTERFACE_END \ " </interface>\n" +#define BUS_MANAGER_INTERFACE \ + BUS_MANAGER_INTERFACE_BEGIN \ + BUS_MANAGER_INTERFACE_METHODS \ + BUS_MANAGER_INTERFACE_SIGNALS \ + BUS_MANAGER_INTERFACE_PROPERTIES_GENERAL \ + BUS_MANAGER_INTERFACE_PROPERTIES_SYSV \ + BUS_MANAGER_INTERFACE_END + #define INTROSPECTION_BEGIN \ DBUS_INTROSPECT_1_0_XML_DOCTYPE_DECL_NODE \ "<node>\n" \ @@ -273,14 +296,16 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection, { "org.freedesktop.systemd1.Manager", "Environment", bus_property_append_strv, "as", m->environment }, { "org.freedesktop.systemd1.Manager", "ConfirmSpawn", bus_property_append_bool, "b", &m->confirm_spawn }, { "org.freedesktop.systemd1.Manager", "ShowStatus", bus_property_append_bool, "b", &m->show_status }, - { "org.freedesktop.systemd1.Manager", "SysVConsole", bus_property_append_bool, "b", &m->sysv_console }, { "org.freedesktop.systemd1.Manager", "UnitPath", bus_property_append_strv, "as", m->lookup_paths.unit_path }, - { "org.freedesktop.systemd1.Manager", "SysVInitPath", bus_property_append_strv, "as", m->lookup_paths.sysvinit_path }, - { "org.freedesktop.systemd1.Manager", "SysVRcndPath", bus_property_append_strv, "as", m->lookup_paths.sysvrcnd_path }, { "org.freedesktop.systemd1.Manager", "NotifySocket", bus_property_append_string, "s", m->notify_socket }, { "org.freedesktop.systemd1.Manager", "ControlGroupHierarchy", bus_property_append_string, "s", m->cgroup_hierarchy }, { "org.freedesktop.systemd1.Manager", "MountAuto", bus_property_append_bool, "b", &m->mount_auto }, { "org.freedesktop.systemd1.Manager", "SwapAuto", bus_property_append_bool, "b", &m->swap_auto }, +#ifdef HAVE_SYSV_COMPAT + { "org.freedesktop.systemd1.Manager", "SysVConsole", bus_property_append_bool, "b", &m->sysv_console }, + { "org.freedesktop.systemd1.Manager", "SysVInitPath", bus_property_append_strv, "as", m->lookup_paths.sysvinit_path }, + { "org.freedesktop.systemd1.Manager", "SysVRcndPath", bus_property_append_strv, "as", m->lookup_paths.sysvrcnd_path }, +#endif { NULL, NULL, NULL, NULL, NULL } }; |