Write to output file rather than temporary file
authorJonathan Dieter <jdieter@gmail.com>
Tue, 20 Mar 2018 14:07:34 +0000 (16:07 +0200)
committerJonathan Dieter <jdieter@gmail.com>
Tue, 20 Mar 2018 14:07:34 +0000 (16:07 +0200)
Signed-off-by: Jonathan Dieter <jdieter@gmail.com>
src/zck_dl.c

index c0bd70317429b5cedb1f4e06b703d76e9a210a91..e8d1742cb02693f46e8219a1dfec36ec2ab1b14c 100644 (file)
@@ -67,9 +67,18 @@ int main (int argc, char *argv[]) {
         exit(1);
     dl->zck = zck_tgt;
 
-    dl->dst_fd = zck_get_tmp_fd();
-    if(dl->dst_fd < 0)
+    char *outname_full = calloc(1, strlen(argv[2])+1);
+    memcpy(outname_full, argv[2], strlen(argv[2]));
+    char *outname = basename(outname_full);
+    int dst_fd = open(outname, O_EXCL | O_RDWR | O_CREAT, 0644);
+    if(dst_fd < 0) {
+        printf("Unable to open %s: %s\n", outname, strerror(errno));
+        free(outname_full);
         exit(1);
+    }
+    free(outname_full);
+    dl->dst_fd = dst_fd;
+
     if(!zck_dl_get_header(zck_tgt, dl, argv[2]))
         exit(1);
 
@@ -84,17 +93,6 @@ int main (int argc, char *argv[]) {
     if(!zck_dl_range(dl, argv[2], 1))
         exit(1);
 
-    /*
-    char *outname_full = calloc(1, strlen(argv[2])+1);
-    memcpy(outname_full, argv[2], strlen(argv[2]));
-    char *outname = basename(outname_full);
-    int dst_fd = open(outname, O_EXCL | O_WRONLY | O_CREAT, 0644);
-    if(dst_fd < 0) {
-        printf("Unable to open %s: %s\n", outname, strerror(errno));
-        free(outname_full);
-        exit(1);
-    }
-    free(outname_full);*/
 
     printf("Downloaded %lu bytes\n", zck_dl_get_bytes_downloaded(dl));
     switch(zck_hash_check_full_file(dl->zck, dl->dst_fd)) {