From: Lennart Poettering Date: Mon, 20 Nov 2017 20:11:32 +0000 (+0100) Subject: core: add manager_dump() call, and make it output timestamp data X-Git-Tag: v236~148^2~4 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ad75b9e765147ce7a8d6afe382fa3cbb663a30a9;p=thirdparty%2Fsystemd.git core: add manager_dump() call, and make it output timestamp data It's a wrapper around manager_dump_units() and manager_dump_jobs(), and outputs some additional timestamp data. Also, port two users of this over. --- diff --git a/src/core/dbus-manager.c b/src/core/dbus-manager.c index b98351e84ef..3261e1e86eb 100644 --- a/src/core/dbus-manager.c +++ b/src/core/dbus-manager.c @@ -1307,8 +1307,7 @@ static int method_dump(sd_bus_message *message, void *userdata, sd_bus_error *er if (!f) return -ENOMEM; - manager_dump_units(m, f, NULL); - manager_dump_jobs(m, f, NULL); + manager_dump(m, f, NULL); r = fflush_and_check(f); if (r < 0) diff --git a/src/core/manager.c b/src/core/manager.c index 059482ff1d5..b99bf22e238 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -1711,6 +1711,26 @@ void manager_dump_units(Manager *s, FILE *f, const char *prefix) { unit_dump(u, f, prefix); } +void manager_dump(Manager *m, FILE *f, const char *prefix) { + ManagerTimestamp q; + + assert(m); + assert(f); + + for (q = 0; q < _MANAGER_TIMESTAMP_MAX; q++) { + char buf[FORMAT_TIMESTAMP_MAX]; + + if (dual_timestamp_is_set(m->timestamps + q)) + fprintf(f, "%sTimestamp %s: %s\n", + strempty(prefix), + manager_timestamp_to_string(q), + format_timestamp(buf, sizeof(buf), m->timestamps[q].realtime)); + } + + manager_dump_units(m, f, prefix); + manager_dump_jobs(m, f, prefix); +} + void manager_clear_jobs(Manager *m) { Job *j; @@ -2168,8 +2188,7 @@ static int manager_dispatch_signal_fd(sd_event_source *source, int fd, uint32_t break; } - manager_dump_units(m, f, "\t"); - manager_dump_jobs(m, f, "\t"); + manager_dump(m, f, NULL); r = fflush_and_check(f); if (r < 0) { diff --git a/src/core/manager.h b/src/core/manager.h index 1812eb37ea6..eec063e4656 100644 --- a/src/core/manager.h +++ b/src/core/manager.h @@ -374,6 +374,7 @@ int manager_propagate_reload(Manager *m, Unit *unit, JobMode mode, sd_bus_error void manager_dump_units(Manager *s, FILE *f, const char *prefix); void manager_dump_jobs(Manager *s, FILE *f, const char *prefix); +void manager_dump(Manager *s, FILE *f, const char *prefix); void manager_clear_jobs(Manager *m);