uclient-fetch: clean up output file selection
authorFelix Fietkau <nbd@openwrt.org>
Sat, 16 Jan 2016 18:18:38 +0000 (19:18 +0100)
committerFelix Fietkau <nbd@openwrt.org>
Sat, 16 Jan 2016 18:19:29 +0000 (19:19 +0100)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
uclient-fetch.c

index 7418f823122653d2295814cf03df8a754c20f5f6..da1126859b9521a36c231e070e9ad35b573fbc4c 100644 (file)
@@ -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;