1
0
mirror of https://github.com/moparisthebest/curl synced 2024-12-21 23:58:49 -05:00

Dolbneff A.V and Spiridonoff A.V made the file:// code work with resumes

in the same style other code does.
This commit is contained in:
Daniel Stenberg 2002-09-23 12:46:23 +00:00
parent 35089a4289
commit cbc0f65fa3

View File

@ -159,6 +159,16 @@ CURLcode Curl_file(struct connectdata *conn)
expected_size = (double)statbuf.st_size; expected_size = (double)statbuf.st_size;
} }
/* Added by Dolbneff A.V & Spiridonoff A.V */
if (conn->resume_from <= expected_size)
expected_size -= conn->resume_from;
else
/* Is this error code suitable in such situation? */
return CURLE_FTP_BAD_DOWNLOAD_RESUME;
if (expected_size == 0)
return CURLE_OK;
/* The following is a shortcut implementation of file reading /* The following is a shortcut implementation of file reading
this is both more efficient than the former call to download() and this is both more efficient than the former call to download() and
it avoids problems with select() and recv() on file descriptors it avoids problems with select() and recv() on file descriptors
@ -166,6 +176,10 @@ CURLcode Curl_file(struct connectdata *conn)
if(expected_size != -1) if(expected_size != -1)
Curl_pgrsSetDownloadSize(data, expected_size); Curl_pgrsSetDownloadSize(data, expected_size);
if(conn->resume_from)
/* Added by Dolbneff A.V & Spiridonoff A.V */
lseek(fd, conn->resume_from, SEEK_SET);
while (res == CURLE_OK) { while (res == CURLE_OK) {
nread = read(fd, buf, BUFSIZE-1); nread = read(fd, buf, BUFSIZE-1);