X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fanalyze%2Fanalyze.c;h=46a97eb8e7f9682e4c518d425d27c6a8ef5a9f1f;hb=8744505aaefad761cba0f0e5afaaf6bcec53906e;hp=d860a022b79b487b2a70b2036874951762da2a2c;hpb=dad29dff1925a114e20d4eb7b47fca23c4f25fd7;p=elogind.git diff --git a/src/analyze/analyze.c b/src/analyze/analyze.c index d860a022b..46a97eb8e 100644 --- a/src/analyze/analyze.c +++ b/src/analyze/analyze.c @@ -277,7 +277,8 @@ static int acquire_time_data(sd_bus *bus, struct unit_times **out) { return c; fail: - free_unit_times(unit_times, (unsigned) c); + if (unit_times) + free_unit_times(unit_times, (unsigned) c); return r; } @@ -847,7 +848,8 @@ static int list_dependencies(sd_bus *bus, const char *name) { char ts[FORMAT_TIMESPAN_MAX]; struct unit_times *times; int r; - const char *path, *id; + const char *id; + _cleanup_free_ char *path = NULL; _cleanup_bus_message_unref_ sd_bus_message *reply = NULL; _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; struct boot_times *boot; @@ -905,7 +907,7 @@ static int analyze_critical_chain(sd_bus *bus, char *names[]) { if (n <= 0) return n; - h = hashmap_new(string_hash_func, string_compare_func); + h = hashmap_new(&string_hash_ops); if (!h) return -ENOMEM; @@ -1193,18 +1195,15 @@ static void help(void) { " --user Operate on user systemd instance\n" " -H --host=[USER@]HOST Operate on remote host\n" " -M --machine=CONTAINER Operate on local container\n" - " --order When generating a dependency graph, show only order\n" - " --require When generating a dependency graph, show only requirement\n" - " --from-pattern=GLOB, --to-pattern=GLOB\n" - " When generating a dependency graph, filter only origins\n" - " or destinations, respectively\n" - " --fuzz=TIMESPAN When printing the tree of the critical chain, print also\n" - " services, which finished TIMESPAN earlier, than the\n" - " latest in the branch. The unit of TIMESPAN is seconds\n" - " unless specified with a different unit, i.e. 50ms\n" + " --order Show only order in the graph\n" + " --require Show only requirement in the graph\n" + " --from-pattern=GLOB Show only origins in the graph\n" + " --to-pattern=GLOB Show only destinations in the graph\n" + " --fuzz=SECONDS Also print also services which finished SECONDS\n" + " earlier than the latest in the branch\n" " --man[=BOOL] Do [not] check for existence of man pages\n\n" "Commands:\n" - " time Print time spent in the kernel before reaching userspace\n" + " time Print time spent in the kernel\n" " blame Print list of running units ordered by time to init\n" " critical-chain Print a tree of the time critical chain of units\n" " plot Output SVG graphic showing service initialization\n" @@ -1311,7 +1310,7 @@ static int parse_argv(int argc, char *argv[]) { break; case 'M': - arg_transport = BUS_TRANSPORT_CONTAINER; + arg_transport = BUS_TRANSPORT_MACHINE; arg_host = optarg; break; @@ -1360,7 +1359,7 @@ int main(int argc, char *argv[]) { r = bus_open_transport_systemd(arg_transport, arg_host, arg_user, &bus); if (r < 0) { - log_error("Failed to create bus connection: %s", strerror(-r)); + log_error_errno(r, "Failed to create bus connection: %m"); goto finish; }