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);
fprintf(f, " MESSAGE \"%s\" {\n", strempty(m->root_container.signature));
- for(;;) {
+ for (;;) {
_cleanup_free_ char *prefix = NULL;
const char *contents = NULL;
char type;
break;
case SD_BUS_TYPE_BOOLEAN:
- fprintf(f, "%sBOOLEAN %s%s%s;\n", prefix, ansi_highlight(), yes_no(basic.i), ansi_highlight_off());
+ fprintf(f, "%sBOOLEAN %s%s%s;\n", prefix, ansi_highlight(), true_false(basic.i), ansi_highlight_off());
break;
case SD_BUS_TYPE_INT16:
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);
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);
fputs(*i, f);
}
- fputs("\n", f);
+ fputs("}\n", f);
}
if (c->mask & SD_BUS_CREDS_CGROUP)
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);