Michael Gmelin <free...@grem.de> writes:
> His web server reports a content length of 2696186, but only provides
> 2696168 bytes of data. Tools like wget and curl just stop downloading
> data, while fetch hangs waiting for those 18 extra bytes.

Actually, the file *is* 2696168 bytes long.  With the following patch,
fetch(1) will still hang getting the last 1018 bytes, but the file will
be complete and the download will be successful.

Index: lib/libfetch/common.c
===================================================================
--- lib/libfetch/common.c       (revision 260631)
+++ lib/libfetch/common.c       (working copy)
@@ -1036,6 +1036,13 @@
                        if (fetchTimeout > 0) {
                                gettimeofday(&now, NULL);
                                if (!timercmp(&timeout, &now, >)) {
+                                       /*
+                                        * Return a short read instead of
+                                        * a timeout if we have anything
+                                        * at all.
+                                        */
+                                       if (total > 0)
+                                               return (total);
                                        errno = ETIMEDOUT;
                                        fetch_syserr();
                                        return (-1);


DES
-- 
Dag-Erling Smørgrav - d...@des.no
_______________________________________________
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"

Reply via email to