summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authord032747 <michael.trapp@sap.com>2020-12-15 10:40:06 +0100
committerYu Watanabe <watanabe.yu+github@gmail.com>2020-12-16 05:06:56 +0900
commit6fe2a70b9160e35fdeed9d37bd31727c2d46a8b2 (patch)
tree55203cf660298f1e232d9ab4395e12aea3e105f9 /src
parent3a23834d6b0da391c1ba9cb79a7d7deea7125f4b (diff)
downloadsystemd-6fe2a70b9160e35fdeed9d37bd31727c2d46a8b2.tar.gz
busctl: add a timestamp to the output of the busctl monitor command
Diffstat (limited to 'src')
-rw-r--r--src/busctl/busctl.c6
-rw-r--r--src/libsystemd/sd-bus/bus-dump.c11
2 files changed, 17 insertions, 0 deletions
diff --git a/src/busctl/busctl.c b/src/busctl/busctl.c
index 06a15ddd80..274fb42ed3 100644
--- a/src/busctl/busctl.c
+++ b/src/busctl/busctl.c
@@ -1194,6 +1194,7 @@ static int message_json(sd_bus_message *m, FILE *f) {
_cleanup_(json_variant_unrefp) JsonVariant *v = NULL, *w = NULL;
char e[2];
int r;
+ usec_t ts;
r = json_transform_message(m, &v);
if (r < 0)
@@ -1202,6 +1203,10 @@ static int message_json(sd_bus_message *m, FILE *f) {
e[0] = m->header->endian;
e[1] = 0;
+ ts = m->realtime;
+ if (ts == 0)
+ ts = now(CLOCK_REALTIME);
+
r = json_build(&w, JSON_BUILD_OBJECT(
JSON_BUILD_PAIR("type", JSON_BUILD_STRING(bus_message_type_to_string(m->header->type))),
JSON_BUILD_PAIR("endian", JSON_BUILD_STRING(e)),
@@ -1209,6 +1214,7 @@ static int message_json(sd_bus_message *m, FILE *f) {
JSON_BUILD_PAIR("version", JSON_BUILD_INTEGER(m->header->version)),
JSON_BUILD_PAIR("cookie", JSON_BUILD_INTEGER(BUS_MESSAGE_COOKIE(m))),
JSON_BUILD_PAIR_CONDITION(m->reply_cookie != 0, "reply_cookie", JSON_BUILD_INTEGER(m->reply_cookie)),
+ JSON_BUILD_PAIR("timestamp-realtime", JSON_BUILD_UNSIGNED(ts)),
JSON_BUILD_PAIR_CONDITION(m->sender, "sender", JSON_BUILD_STRING(m->sender)),
JSON_BUILD_PAIR_CONDITION(m->destination, "destination", JSON_BUILD_STRING(m->destination)),
JSON_BUILD_PAIR_CONDITION(m->path, "path", JSON_BUILD_STRING(m->path)),
diff --git a/src/libsystemd/sd-bus/bus-dump.c b/src/libsystemd/sd-bus/bus-dump.c
index 3ff87be67c..7ee6e7012f 100644
--- a/src/libsystemd/sd-bus/bus-dump.c
+++ b/src/libsystemd/sd-bus/bus-dump.c
@@ -55,6 +55,15 @@ _public_ int sd_bus_message_dump(sd_bus_message *m, FILE *f, uint64_t flags) {
f = stdout;
if (flags & SD_BUS_MESSAGE_DUMP_WITH_HEADER) {
+ char buf[FORMAT_TIMESTAMP_MAX];
+ const char *p;
+ usec_t ts = m->realtime;
+
+ if (ts == 0)
+ ts = now(CLOCK_REALTIME);
+
+ p = format_timestamp_style(buf, sizeof(buf), ts, TIMESTAMP_US_UTC);
+
fprintf(f,
"%s%s%s Type=%s%s%s Endian=%c Flags=%u Version=%u",
m->header->type == SD_BUS_MESSAGE_METHOD_ERROR ? ansi_highlight_red() :
@@ -81,6 +90,8 @@ _public_ int sd_bus_message_dump(sd_bus_message *m, FILE *f, uint64_t flags) {
if (m->reply_cookie != 0)
fprintf(f, " ReplyCookie=%" PRIu64, m->reply_cookie);
+ fprintf(f, " Timestamp=\"%s\"", strna(p));
+
fputs("\n", f);
if (m->sender)