X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flibsystemd%2Fsd-bus%2Fbusctl.c;h=1ba4e8adacfe0b7f83495989f9a01175fc8b772e;hb=fed1e721fd0c81e60c77120539f34e16c2585634;hp=8cc309c01b46e9de2f248d8818d9ab9641db7d2a;hpb=0a1beeb64207eaa88ab9236787b1cbc2f704ae14;p=elogind.git diff --git a/src/libsystemd/sd-bus/busctl.c b/src/libsystemd/sd-bus/busctl.c index 8cc309c01..1ba4e8ada 100644 --- a/src/libsystemd/sd-bus/busctl.c +++ b/src/libsystemd/sd-bus/busctl.c @@ -89,10 +89,8 @@ static int list_bus_names(sd_bus *bus, char **argv) { arg_unique = arg_acquired = arg_activatable = true; r = sd_bus_list_names(bus, (arg_acquired || arg_unique) ? &acquired : NULL, arg_activatable ? &activatable : NULL); - if (r < 0) { - log_error_errno(-r, "Failed to list names: %m"); - return r; - } + if (r < 0) + return log_error_errno(r, "Failed to list names: %m"); pager_open_if_enabled(); @@ -104,20 +102,16 @@ static int list_bus_names(sd_bus *bus, char **argv) { max_i = MAX(max_i, strlen(*i)); r = hashmap_put(names, *i, NAME_IS_ACQUIRED); - if (r < 0) { - log_error_errno(-r, "Failed to add to hashmap: %m"); - return r; - } + if (r < 0) + return log_error_errno(r, "Failed to add to hashmap: %m"); } STRV_FOREACH(i, activatable) { max_i = MAX(max_i, strlen(*i)); r = hashmap_put(names, *i, NAME_IS_ACTIVATABLE); - if (r < 0 && r != -EEXIST) { - log_error_errno(-r, "Failed to add to hashmap: %m"); - return r; - } + if (r < 0 && r != -EEXIST) + return log_error_errno(r, "Failed to add to hashmap: %m"); } merged = new(char*, hashmap_size(names) + 1); @@ -438,10 +432,8 @@ static int tree(sd_bus *bus, char **argv) { bool not_first = false; r = sd_bus_list_names(bus, &names, NULL); - if (r < 0) { - log_error_errno(-r, "Failed to get name list: %m"); - return r; - } + if (r < 0) + return log_error_errno(r, "Failed to get name list: %m"); pager_open_if_enabled(); @@ -1095,40 +1087,32 @@ static int monitor(sd_bus *bus, char *argv[], int (*dump)(sd_bus_message *m, FIL return log_oom(); r = sd_bus_add_match(bus, NULL, m, NULL, NULL); - if (r < 0) { - log_error_errno(-r, "Failed to add match: %m"); - return r; - } + if (r < 0) + return log_error_errno(r, "Failed to add match: %m"); added_something = true; } STRV_FOREACH(i, arg_matches) { r = sd_bus_add_match(bus, NULL, *i, NULL, NULL); - if (r < 0) { - log_error_errno(-r, "Failed to add match: %m"); - return r; - } + if (r < 0) + return log_error_errno(r, "Failed to add match: %m"); added_something = true; } if (!added_something) { r = sd_bus_add_match(bus, NULL, "", NULL, NULL); - if (r < 0) { - log_error_errno(-r, "Failed to add match: %m"); - return r; - } + if (r < 0) + return log_error_errno(r, "Failed to add match: %m"); } for (;;) { _cleanup_bus_message_unref_ sd_bus_message *m = NULL; r = sd_bus_process(bus, &m); - if (r < 0) { - log_error_errno(-r, "Failed to process bus: %m"); - return r; - } + if (r < 0) + return log_error_errno(r, "Failed to process bus: %m"); if (m) { dump(m, stdout); @@ -1139,10 +1123,8 @@ static int monitor(sd_bus *bus, char *argv[], int (*dump)(sd_bus_message *m, FIL continue; r = sd_bus_wait(bus, (uint64_t) -1); - if (r < 0) { - log_error_errno(-r, "Failed to wait for bus: %m"); - return r; - } + if (r < 0) + return log_error_errno(r, "Failed to wait for bus: %m"); } } @@ -1193,17 +1175,31 @@ static int status(sd_bus *bus, char *argv[]) { &creds, pid, _SD_BUS_CREDS_ALL); - } else + } else { + const char *scope, *address; + sd_id128_t bus_id; + + r = sd_bus_get_address(bus, &address); + if (r >= 0) + printf("BusAddress=%s%s%s\n", ansi_highlight(), address, ansi_highlight_off()); + + r = sd_bus_get_scope(bus, &scope); + if (r >= 0) + printf("BusScope=%s%s%s\n", ansi_highlight(), scope, ansi_highlight_off()); + + r = sd_bus_get_bus_id(bus, &bus_id); + if (r >= 0) + printf("BusID=%s" SD_ID128_FORMAT_STR "%s\n", ansi_highlight(), SD_ID128_FORMAT_VAL(bus_id), ansi_highlight_off()); + r = sd_bus_get_owner_creds( bus, (arg_augment_creds ? SD_BUS_CREDS_AUGMENT : 0) | _SD_BUS_CREDS_ALL, &creds); - - if (r < 0) { - log_error_errno(-r, "Failed to get credentials: %m"); - return r; } + if (r < 0) + return log_error_errno(r, "Failed to get credentials: %m"); + bus_creds_dump(creds, NULL, false); return 0; } @@ -1962,7 +1958,7 @@ int main(int argc, char *argv[]) { r = sd_bus_new(&bus); if (r < 0) { - log_error_errno(-r, "Failed to allocate bus: %m"); + log_error_errno(r, "Failed to allocate bus: %m"); goto finish; } @@ -1971,25 +1967,25 @@ int main(int argc, char *argv[]) { r = sd_bus_set_monitor(bus, true); if (r < 0) { - log_error_errno(-r, "Failed to set monitor mode: %m"); + log_error_errno(r, "Failed to set monitor mode: %m"); goto finish; } r = sd_bus_negotiate_creds(bus, true, _SD_BUS_CREDS_ALL); if (r < 0) { - log_error_errno(-r, "Failed to enable credentials: %m"); + log_error_errno(r, "Failed to enable credentials: %m"); goto finish; } r = sd_bus_negotiate_timestamp(bus, true); if (r < 0) { - log_error_errno(-r, "Failed to enable timestamps: %m"); + log_error_errno(r, "Failed to enable timestamps: %m"); goto finish; } r = sd_bus_negotiate_fds(bus, true); if (r < 0) { - log_error_errno(-r, "Failed to enable fds: %m"); + log_error_errno(r, "Failed to enable fds: %m"); goto finish; } } @@ -1999,17 +1995,20 @@ int main(int argc, char *argv[]) { else { r = sd_bus_set_bus_client(bus, true); if (r < 0) { - log_error_errno(-r, "Failed to set bus client: %m"); + log_error_errno(r, "Failed to set bus client: %m"); goto finish; } switch (arg_transport) { case BUS_TRANSPORT_LOCAL: - if (arg_user) + if (arg_user) { + bus->is_user = true; r = bus_set_address_user(bus); - else + } else { + bus->is_system = true; r = bus_set_address_system(bus); + } break; case BUS_TRANSPORT_REMOTE: @@ -2025,13 +2024,13 @@ int main(int argc, char *argv[]) { } } if (r < 0) { - log_error_errno(-r, "Failed to set address: %m"); + log_error_errno(r, "Failed to set address: %m"); goto finish; } r = sd_bus_start(bus); if (r < 0) { - log_error_errno(-r, "Failed to connect to bus: %m"); + log_error_errno(r, "Failed to connect to bus: %m"); goto finish; }