]> sjero.net Git - wget/blobdiff - src/retr.c
[svn] Fixed a timeout problem in src/retr.c:fd_read_body when using http_proxy.
[wget] / src / retr.c
index d9d03298a8eed084b62224ed3ee1102c44ac0c5e..605db8316e31bee892df334139c42cb8936f4306 100644 (file)
@@ -283,6 +283,13 @@ fd_read_body (int fd, FILE *out, long toread, long startpos,
        }
       ret = fd_read (fd, dlbuf, rdsize, tmout);
 
+      /* when retrieving from http-proxy wget sometimes does not trust the 
+       * file length reported by server.
+       * this check is to tell wget not to stubbornly try to read again and 
+       * again until another errno code was received. */
+      if ( ret == -1 && errno == ETIMEDOUT && sum_read == toread && toread > 0 )
+       break;
+
       if (ret == 0 || (ret < 0 && errno != ETIMEDOUT))
        break;                  /* read error */
       else if (ret < 0)