From: Lennart Poettering Date: Wed, 22 Jan 2014 17:43:03 +0000 (+0100) Subject: busctl: include connection name in busctl output X-Git-Tag: v209~361 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=14008e4e9cc6b51d68cd07ed091f788239d92856;ds=sidebyside busctl: include connection name in busctl output --- diff --git a/src/libsystemd/sd-bus/bus-dump.c b/src/libsystemd/sd-bus/bus-dump.c index f1d00a952..a2b635821 100644 --- a/src/libsystemd/sd-bus/bus-dump.c +++ b/src/libsystemd/sd-bus/bus-dump.c @@ -340,12 +340,16 @@ int bus_creds_dump(sd_bus_creds *c, FILE *f) { fprintf(f, " Comm=%s", c->comm); if (c->mask & SD_BUS_CREDS_TID_COMM) fprintf(f, " TIDComm=%s", c->tid_comm); + + if (c->mask & (SD_BUS_CREDS_EXE|SD_BUS_CREDS_COMM|SD_BUS_CREDS_TID_COMM)) + fputs("\n", f); + if (c->mask & SD_BUS_CREDS_SELINUX_CONTEXT) fprintf(f, " Label=%s", c->label); if (c->mask & SD_BUS_CREDS_CONNECTION_NAME) fprintf(f, " ConnectionName=%s", c->conn_name); - if (c->mask & (SD_BUS_CREDS_EXE|SD_BUS_CREDS_COMM|SD_BUS_CREDS_TID_COMM|SD_BUS_CREDS_SELINUX_CONTEXT|SD_BUS_CREDS_CONNECTION_NAME)) + if (c->mask & (SD_BUS_CREDS_SELINUX_CONTEXT|SD_BUS_CREDS_CONNECTION_NAME)) fputs("\n", f); if (sd_bus_creds_get_cmdline(c, &cmdline) >= 0) { diff --git a/src/libsystemd/sd-bus/busctl.c b/src/libsystemd/sd-bus/busctl.c index e962ba3f6..1d7f57531 100644 --- a/src/libsystemd/sd-bus/busctl.c +++ b/src/libsystemd/sd-bus/busctl.c @@ -106,8 +106,8 @@ static int list_bus_names(sd_bus *bus, char **argv) { merged[n] = NULL; strv_sort(merged); - printf("%-*s %*s %-*s %-*s %-*s %-*s %-*s", - (int) max_i, "NAME", 10, "PID", 15, "PROCESS", 16, "USER", 13, "CONNECTION", 25, "UNIT", 10, "SESSION"); + printf("%-*s %*s %-*s %-*s %-*s %-*s %-*s %-*s", + (int) max_i, "NAME", 10, "PID", 15, "PROCESS", 16, "USER", 13, "CONNECTION", 25, "UNIT", 10, "SESSION", 19, "CONNECTION-NAME"); if (arg_show_machine) puts(" MACHINE"); @@ -139,9 +139,12 @@ static int list_bus_names(sd_bus *bus, char **argv) { printf("%-*s", (int) max_i, *i); - r = sd_bus_get_owner(bus, *i, SD_BUS_CREDS_UID|SD_BUS_CREDS_PID|SD_BUS_CREDS_COMM|SD_BUS_CREDS_UNIQUE_NAME|SD_BUS_CREDS_UNIT|SD_BUS_CREDS_SESSION, &creds); + r = sd_bus_get_owner(bus, *i, + SD_BUS_CREDS_UID|SD_BUS_CREDS_PID|SD_BUS_CREDS_COMM| + SD_BUS_CREDS_UNIQUE_NAME|SD_BUS_CREDS_UNIT|SD_BUS_CREDS_SESSION| + SD_BUS_CREDS_CONNECTION_NAME, &creds); if (r >= 0) { - const char *unique, *session, *unit; + const char *unique, *session, *unit, *cn; pid_t pid; uid_t uid; @@ -194,8 +197,14 @@ static int list_bus_names(sd_bus *bus, char **argv) { else fputs(" - ", stdout); + r = sd_bus_creds_get_connection_name(creds, &cn); + if (r >= 0) + printf(" %-19s", cn); + else + fputs(" - ", stdout); + } else - printf(" - - - - - - "); + printf(" - - - - - - - "); if (arg_show_machine) { r = sd_bus_get_owner_machine_id(bus, *i, &mid);