Since spider mode only checks if a file exists, we don't need to download
the whole file. This also matches wget's behavior.

Signed-off-by: Sungbo Eo <man...@gorani.run>
---
v2: rebased
---
 uclient-fetch.c | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/uclient-fetch.c b/uclient-fetch.c
index 061f0fd..95334b0 100644
--- a/uclient-fetch.c
+++ b/uclient-fetch.c
@@ -235,8 +235,12 @@ static void header_done_cb(struct uclient *cl)
                }
        case 204:
        case 200:
-               if (no_output)
+               if (no_output) {
+                       if (!quiet)
+                               fprintf(stderr, "Request succeeded\n");
+                       request_done(cl);
                        break;
+               }
 
                if (tb[H_LEN])
                        out_len = strtoul(blobmsg_get_string(tb[H_LEN]), NULL, 
10);
@@ -265,7 +269,7 @@ static void read_data_cb(struct uclient *cl)
        ssize_t n;
        int len;
 
-       if (!no_output && output_fd < 0)
+       if (output_fd < 0)
                return;
 
        while (1) {
@@ -274,11 +278,9 @@ static void read_data_cb(struct uclient *cl)
                        return;
 
                out_bytes += len;
-               if (!no_output) {
-                       n = write(output_fd, buf, len);
-                       if (n < 0)
-                               return;
-               }
+               n = write(output_fd, buf, len);
+               if (n < 0)
+                       return;
        }
 }
 
-- 
2.27.0


_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to