Warn if the size of the remote file isn't known.

If the -R option was specified, don't truncate the local file even if its
mtime is incorrect.

PR:		bin/23719
This commit is contained in:
Dag-Erling Smørgrav 2000-12-22 18:23:19 +00:00
parent 659e0d5ef7
commit 89a70fbeb3

View file

@ -305,12 +305,15 @@ fetch(char *URL, char *path)
goto success;
}
if (us.size == -1)
warnx("%s: size of remote file is not known", path);
if (v_level > 1) {
if (sb.st_size != -1)
fprintf(stderr, "local size / mtime: %lld / %ld\n",
sb.st_size, sb.st_mtime);
fprintf(stderr, "remote size / mtime: %lld / %ld\n",
us.size, us.mtime);
if (us.size != -1)
fprintf(stderr, "remote size / mtime: %lld / %ld\n",
us.size, us.mtime);
}
/* open output file */
@ -322,6 +325,12 @@ fetch(char *URL, char *path)
if (!F_flag && us.mtime && sb.st_mtime != us.mtime) {
/* no match! have to refetch */
fclose(f);
/* if precious, warn the user and give up */
if (R_flag) {
warnx("%s: local modification time does not match remote",
path);
goto failure_keep;
}
url->offset = 0;
if ((f = fetchXGet(url, &us, flags)) == NULL) {
warnx("%s: %s", path, fetchLastErrString);