1 /* SPDX-License-Identifier: LGPL-2.1+ */
7 #include "signal-util.h"
9 static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_kill_mode
, kill_mode
, KillMode
);
11 const sd_bus_vtable bus_kill_vtable
[] = {
12 SD_BUS_VTABLE_START(0),
13 SD_BUS_PROPERTY("KillMode", "s", property_get_kill_mode
, offsetof(KillContext
, kill_mode
), SD_BUS_VTABLE_PROPERTY_CONST
),
14 SD_BUS_PROPERTY("KillSignal", "i", bus_property_get_int
, offsetof(KillContext
, kill_signal
), SD_BUS_VTABLE_PROPERTY_CONST
),
15 SD_BUS_PROPERTY("SendSIGKILL", "b", bus_property_get_bool
, offsetof(KillContext
, send_sigkill
), SD_BUS_VTABLE_PROPERTY_CONST
),
16 SD_BUS_PROPERTY("SendSIGHUP", "b", bus_property_get_bool
, offsetof(KillContext
, send_sighup
), SD_BUS_VTABLE_PROPERTY_CONST
),
20 static BUS_DEFINE_SET_TRANSIENT_PARSE(kill_mode
, KillMode
, kill_mode_from_string
);
21 static BUS_DEFINE_SET_TRANSIENT_TO_STRING(kill_signal
, "i", int32_t, int, "%" PRIi32
, signal_to_string_with_check
);
23 int bus_kill_context_set_transient_property(
27 sd_bus_message
*message
,
29 sd_bus_error
*error
) {
36 flags
|= UNIT_PRIVATE
;
38 if (streq(name
, "KillMode"))
39 return bus_set_transient_kill_mode(u
, name
, &c
->kill_mode
, message
, flags
, error
);
41 if (streq(name
, "SendSIGHUP"))
42 return bus_set_transient_bool(u
, name
, &c
->send_sighup
, message
, flags
, error
);
44 if (streq(name
, "SendSIGKILL"))
45 return bus_set_transient_bool(u
, name
, &c
->send_sigkill
, message
, flags
, error
);
47 if (streq(name
, "KillSignal"))
48 return bus_set_transient_kill_signal(u
, name
, &c
->kill_signal
, message
, flags
, error
);