X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Flibsystemd-bus%2Fbus-dump.c;h=ddad4183a2f0b704922b73c3e974c203e5abd09d;hp=9545e181d8d1bab2af3b9b10d6c67f482a0d4ef5;hb=86cb0691b71873c6fe30a103dc98153e2d9ab507;hpb=5b12334d35eadf1f45cc3d631fd1a2e72ffaea0a diff --git a/src/libsystemd-bus/bus-dump.c b/src/libsystemd-bus/bus-dump.c index 9545e181d..ddad4183a 100644 --- a/src/libsystemd-bus/bus-dump.c +++ b/src/libsystemd-bus/bus-dump.c @@ -56,15 +56,21 @@ int bus_message_dump(sd_bus_message *m, FILE *f, bool with_header) { if (with_header) { fprintf(f, - "%s%s%sType=%s%s%s Endian=%c Flags=%u Version=%u Serial=%u ", + "%s%s%sType=%s%s%s Endian=%c Flags=%u Version=%u", m->header->type == SD_BUS_MESSAGE_METHOD_ERROR ? ansi_highlight_red() : m->header->type == SD_BUS_MESSAGE_METHOD_RETURN ? ansi_highlight_green() : m->header->type != SD_BUS_MESSAGE_SIGNAL ? ansi_highlight() : "", draw_special_char(DRAW_TRIANGULAR_BULLET), ansi_highlight_off(), ansi_highlight(), bus_message_type_to_string(m->header->type), ansi_highlight_off(), m->header->endian, m->header->flags, - m->header->version, - BUS_MESSAGE_SERIAL(m)); + m->header->version); + + /* Display synthetic message serial number in a more readable + * format than (uint32_t) -1 */ + if (BUS_MESSAGE_SERIAL(m) == 0xFFFFFFFFULL) + fprintf(f, " Serial=-1"); + else + fprintf(f, " Serial=%u", BUS_MESSAGE_SERIAL(m)); if (m->reply_serial != 0) fprintf(f, " ReplySerial=%u", m->reply_serial); @@ -111,7 +117,7 @@ int bus_message_dump(sd_bus_message *m, FILE *f, bool with_header) { fprintf(f, " MESSAGE \"%s\" {\n", strempty(m->root_container.signature)); - for(;;) { + for (;;) { _cleanup_free_ char *prefix = NULL; const char *contents = NULL; char type; @@ -300,7 +306,7 @@ int bus_creds_dump(sd_bus_creds *c, FILE *f) { const char *u = NULL, *uu = NULL, *s = NULL, *sl = NULL; uid_t owner, audit_loginuid; uint32_t audit_sessionid; - char **cmdline = NULL; + char **cmdline = NULL, **well_known = NULL; int r; assert(c); @@ -340,7 +346,7 @@ int bus_creds_dump(sd_bus_creds *c, FILE *f) { if (sd_bus_creds_get_cmdline(c, &cmdline) >= 0) { char **i; - fputs(" CommandLine=", f); + fputs(" CommandLine={", f); STRV_FOREACH(i, cmdline) { if (i != cmdline) fputc(' ', f); @@ -348,7 +354,7 @@ int bus_creds_dump(sd_bus_creds *c, FILE *f) { fputs(*i, f); } - fputs("\n", f); + fputs("}\n", f); } if (c->mask & SD_BUS_CREDS_CGROUP) @@ -381,6 +387,26 @@ int bus_creds_dump(sd_bus_creds *c, FILE *f) { if (audit_loginuid_is_set || audit_sessionid_is_set) fputs("\n", f); + if (c->mask & SD_BUS_CREDS_UNIQUE_NAME) + fprintf(f, " UniqueName=%s", c->unique_name); + + if (sd_bus_creds_get_well_known_names(c, &well_known) >= 0) { + char **i; + + fputs(" WellKnownNames={", f); + STRV_FOREACH(i, well_known) { + if (i != well_known) + fputc(' ', f); + + fputs(*i, f); + } + + fputc('}', f); + } + + if (c->mask & SD_BUS_CREDS_UNIQUE_NAME || well_known) + fputc('\n', f); + dump_capabilities(c, f, "EffectiveCapabilities", sd_bus_creds_has_effective_cap); dump_capabilities(c, f, "PermittedCapabilities", sd_bus_creds_has_permitted_cap); dump_capabilities(c, f, "InheritableCapabilities", sd_bus_creds_has_inheritable_cap);