X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fsystemctl%2Fsystemctl.c;h=3e6a6883f6ec2509b5532a7947f83d53bd8f6008;hp=9a76349b409ba5c79fbe92e58f392710e1f3e16f;hb=999b600390a2dff43d3367119ad594b7c40ed50d;hpb=815ebc540daf5cede58570bbeb0a4106e201c52e diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c index 9a76349b4..3e6a6883f 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c @@ -3743,20 +3743,19 @@ static int show_all( } static int cat(sd_bus *bus, char **args) { + _cleanup_free_ char *unit = NULL, *n = NULL; int r = 0; char **name; - _cleanup_free_ char *unit = NULL, *n = NULL; - assert(bus); assert(args); pager_open_if_enabled(); STRV_FOREACH(name, args+1) { - _cleanup_free_ char *fragment_path = NULL; + _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; _cleanup_strv_free_ char **dropin_paths = NULL; - sd_bus_error error; + _cleanup_free_ char *fragment_path = NULL; char **path; n = unit_name_mangle(*name); @@ -3800,6 +3799,7 @@ static int cat(sd_bus *bus, char **args) { if (!isempty(fragment_path)) { fprintf(stdout, "# %s\n", fragment_path); fflush(stdout); + r = sendfile_full(STDOUT_FILENO, fragment_path); if (r < 0) { log_warning("Failed to cat %s: %s", fragment_path, strerror(-r)); @@ -3812,6 +3812,7 @@ static int cat(sd_bus *bus, char **args) { isempty(fragment_path) && path == dropin_paths ? "" : "\n", *path); fflush(stdout); + r = sendfile_full(STDOUT_FILENO, *path); if (r < 0) { log_warning("Failed to cat %s: %s", *path, strerror(-r));