diff --git a/src/core/dbus-manager.c b/src/core/dbus-manager.c index 7ca3b815efa..c113140e8f6 100644 --- a/src/core/dbus-manager.c +++ b/src/core/dbus-manager.c @@ -53,6 +53,7 @@ static BUS_DEFINE_PROPERTY_GET2(property_get_system_state, "s", Manager, manager static BUS_DEFINE_PROPERTY_GET_GLOBAL(property_get_timer_slack_nsec, "t", (uint64_t) prctl(PR_GET_TIMERSLACK)); static BUS_DEFINE_PROPERTY_GET_REF(property_get_hashmap_size, "u", Hashmap *, hashmap_size); static BUS_DEFINE_PROPERTY_GET_REF(property_get_set_size, "u", Set *, set_size); +static BUS_DEFINE_PROPERTY_GET(property_get_default_timeout_abort_usec, "t", Manager, manager_default_timeout_abort_usec); static int property_get_virtualization( sd_bus *bus, @@ -287,27 +288,6 @@ static int property_set_runtime_watchdog( return watchdog_set_timeout(t); } -static int property_get_default_timeout_abort_usec( - sd_bus *bus, - const char *path, - const char *interface, - const char *property, - sd_bus_message *reply, - void *userdata, - sd_bus_error *error) { - - Manager *m = userdata; - usec_t t; - - assert(bus); - assert(reply); - assert(m); - - t = manager_default_timeout_abort_usec(m); - - return sd_bus_message_append(reply, "t", t); -} - static int bus_get_unit_by_name(Manager *m, sd_bus_message *message, const char *name, Unit **ret_unit, sd_bus_error *error) { Unit *u; int r; diff --git a/src/core/dbus-service.c b/src/core/dbus-service.c index 4fba8ae62f7..824955b944d 100644 --- a/src/core/dbus-service.c +++ b/src/core/dbus-service.c @@ -28,27 +28,7 @@ static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_result, service_result, Service static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_restart, service_restart, ServiceRestart); static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_notify_access, notify_access, NotifyAccess); static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_emergency_action, emergency_action, EmergencyAction); - -static int property_get_timeout_abort_usec( - sd_bus *bus, - const char *path, - const char *interface, - const char *property, - sd_bus_message *reply, - void *userdata, - sd_bus_error *error) { - - Service *s = userdata; - usec_t t; - - assert(bus); - assert(reply); - assert(s); - - t = service_timeout_abort_usec(s); - - return sd_bus_message_append(reply, "t", t); -} +static BUS_DEFINE_PROPERTY_GET(property_get_timeout_abort_usec, "t", Service, service_timeout_abort_usec); static int property_get_exit_status_set( sd_bus *bus, diff --git a/src/core/manager.h b/src/core/manager.h index 4ab4231b3b9..92bfd489975 100644 --- a/src/core/manager.h +++ b/src/core/manager.h @@ -420,6 +420,7 @@ struct Manager { }; static inline usec_t manager_default_timeout_abort_usec(Manager *m) { + assert(m); return m->default_timeout_abort_set ? m->default_timeout_abort_usec : m->default_timeout_stop_usec; } diff --git a/src/core/service.c b/src/core/service.c index 0efd8618882..c4d83785578 100644 --- a/src/core/service.c +++ b/src/core/service.c @@ -861,16 +861,19 @@ static void service_dump(Unit *u, FILE *f, const char *prefix) { fprintf(f, "%sRestartSec: %s\n" "%sTimeoutStartSec: %s\n" - "%sTimeoutStopSec: %s\n" - "%sTimeoutAbortSec: %s\n" - "%sRuntimeMaxSec: %s\n" - "%sWatchdogSec: %s\n", + "%sTimeoutStopSec: %s\n", prefix, format_timespan(buf_restart, sizeof(buf_restart), s->restart_usec, USEC_PER_SEC), prefix, format_timespan(buf_start, sizeof(buf_start), s->timeout_start_usec, USEC_PER_SEC), - prefix, format_timespan(buf_stop, sizeof(buf_stop), s->timeout_stop_usec, USEC_PER_SEC), - prefix, s->timeout_abort_set - ? format_timespan(buf_abort, sizeof(buf_abort), s->timeout_abort_usec, USEC_PER_SEC) - : "", + prefix, format_timespan(buf_stop, sizeof(buf_stop), s->timeout_stop_usec, USEC_PER_SEC)); + + if (s->timeout_abort_set) + fprintf(f, + "%sTimeoutAbortSec: %s\n", + prefix, format_timespan(buf_abort, sizeof(buf_abort), s->timeout_abort_usec, USEC_PER_SEC)); + + fprintf(f, + "%sRuntimeMaxSec: %s\n" + "%sWatchdogSec: %s\n", prefix, format_timespan(buf_runtime, sizeof(buf_runtime), s->runtime_max_usec, USEC_PER_SEC), prefix, format_timespan(buf_watchdog, sizeof(buf_watchdog), s->watchdog_usec, USEC_PER_SEC)); diff --git a/src/core/service.h b/src/core/service.h index 7f1dfe0a8a5..2aebc5f09d8 100644 --- a/src/core/service.h +++ b/src/core/service.h @@ -98,7 +98,7 @@ struct Service { usec_t timeout_start_usec; usec_t timeout_stop_usec; usec_t timeout_abort_usec; - usec_t timeout_abort_set; + bool timeout_abort_set; usec_t runtime_max_usec; dual_timestamp watchdog_timestamp; @@ -192,6 +192,7 @@ struct Service { }; static inline usec_t service_timeout_abort_usec(Service *s) { + assert(s); return s->timeout_abort_set ? s->timeout_abort_usec : s->timeout_stop_usec; }