Followup to r225599: the fseek() was a no-op since the file was opened
in append mode. Open it in read-write mode instead. Also move the fseek up one level to cover the (unlikely but not impossible) case where the server accepts ranges but does not send a Content-Size header. PR: bin/117277 MFC after: 3 weeks
This commit is contained in:
parent
42f9fc1b3f
commit
0a0c98d376
@ -540,7 +540,7 @@ fetch(char *URL, const char *path)
|
||||
goto failure;
|
||||
}
|
||||
/* we got it, open local file */
|
||||
if ((of = fopen(path, "a")) == NULL) {
|
||||
if ((of = fopen(path, "r+")) == NULL) {
|
||||
warn("%s: fopen()", path);
|
||||
goto failure;
|
||||
}
|
||||
@ -559,13 +559,13 @@ fetch(char *URL, const char *path)
|
||||
sb = nsb;
|
||||
/* picked up again later */
|
||||
}
|
||||
/* seek to where we left off */
|
||||
if (of != NULL && fseek(of, url->offset, SEEK_SET) != 0) {
|
||||
warn("%s: fseek()", path);
|
||||
fclose(of);
|
||||
of = NULL;
|
||||
/* picked up again later */
|
||||
}
|
||||
}
|
||||
/* seek to where we left off */
|
||||
if (of != NULL && fseek(of, url->offset, SEEK_SET) != 0) {
|
||||
warn("%s: fseek()", path);
|
||||
fclose(of);
|
||||
of = NULL;
|
||||
/* picked up again later */
|
||||
}
|
||||
} else if (m_flag && sb.st_size != -1) {
|
||||
/* mirror mode, local file exists */
|
||||
|
Loading…
Reference in New Issue
Block a user