From: Felix Fietkau Date: Sat, 16 Jan 2016 18:18:38 +0000 (+0100) Subject: uclient-fetch: clean up output file selection X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=5c52f09ef02a07e7c99393a6bb97d956fe3bffe4;p=oweals%2Fuclient.git uclient-fetch: clean up output file selection Signed-off-by: Felix Fietkau --- diff --git a/uclient-fetch.c b/uclient-fetch.c index 7418f82..da11268 100644 --- a/uclient-fetch.c +++ b/uclient-fetch.c @@ -58,7 +58,7 @@ static void request_done(struct uclient *cl); static int open_output_file(const char *path, bool create) { - char *filename; + char *filename = NULL; int flags = O_WRONLY; int ret; @@ -66,20 +66,20 @@ static int open_output_file(const char *path, bool create) flags |= O_CREAT | O_EXCL; if (output_file) { - if (!strcmp(output_file, "-")) - return STDOUT_FILENO; - - if (!quiet) - fprintf(stderr, "Writing to stdout\n"); + if (!strcmp(output_file, "-")) { + if (!quiet) + fprintf(stderr, "Writing to stdout\n"); - unlink(output_file); - return open(output_file, flags, 0644); + return STDOUT_FILENO; + } + } else { + filename = uclient_get_url_filename(path, "index.html"); + output_file = filename; } - filename = uclient_get_url_filename(path, "index.html"); if (!quiet) - fprintf(stderr, "Writing to '%s'\n", filename); - ret = open(filename, flags, 0644); + fprintf(stderr, "Writing to '%s'\n", output_file); + ret = open(output_file, flags, 0644); free(filename); return ret;