diff options
| author | Dag-Erling Smørgrav <des@FreeBSD.org> | 2000-05-07 19:56:07 +0000 |
|---|---|---|
| committer | Dag-Erling Smørgrav <des@FreeBSD.org> | 2000-05-07 19:56:07 +0000 |
| commit | 5ff28c822bd29a5a40a542e28361fc8ba87dd003 (patch) | |
| tree | 0ab78cd709604b801d403a8c2fe7c88fce809c5c /lib/libfetch/file.c | |
| parent | b4f9bcbc062423545e2bbb6a26feccff98e72635 (diff) | |
Notes
Diffstat (limited to 'lib/libfetch/file.c')
| -rw-r--r-- | lib/libfetch/file.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/lib/libfetch/file.c b/lib/libfetch/file.c index d00f2d654959..d709e5415daa 100644 --- a/lib/libfetch/file.c +++ b/lib/libfetch/file.c @@ -47,6 +47,12 @@ fetchGetFile(struct url *u, char *flags) if (f == NULL) _fetch_syserr(); + + if (u->offset && fseek(f, u->offset, SEEK_SET) == -1) { + fclose(f); + _fetch_syserr(); + } + return f; } @@ -58,10 +64,16 @@ fetchPutFile(struct url *u, char *flags) if (flags && strchr(flags, 'a')) f = fopen(u->doc, "a"); else - f = fopen(u->doc, "w"); + f = fopen(u->doc, "w+"); if (f == NULL) _fetch_syserr(); + + if (u->offset && fseek(f, u->offset, SEEK_SET) == -1) { + fclose(f); + _fetch_syserr(); + } + return f; } |
