"Brian Havard" <[EMAIL PROTECTED]> writes:
> On Wed, 29 Aug 2001 01:14:23 +1000 (EST), Brian Havard wrote:
>
> >On 28 Aug 2001 01:56:09 -0000, [EMAIL PROTECTED] wrote:
> >
> >>wrowe 01/08/27 18:56:09
> >>
> >> Modified: file_io/win32 readwrite.c seek.c
> >> Log:
> >> Found a very ugly reaction to using apr_file_seek(APR_CUR, -value) in
> >> conjuction with buffered reads. Thank you for toggling that case Jeff,
> >> so I could shoot out this bug ;)
> >
> >Did this actually fix things for you? You see the new offset calculation in
> >the buffered seek is wrong (my fault). I've only tested on OS/2 but it
> >should
> >apply equally to all platforms. The fix is:
>
> Forget it, different bug. Just applied similar fix to the OS/2 version.
> For unix, the patch below should do it but I can't test.
>
>
> Index: readwrite.c
> ===================================================================
> RCS file: /home/cvs/apr/file_io/unix/readwrite.c,v
> retrieving revision 1.71
> diff -u -r1.71 readwrite.c
> --- readwrite.c 2001/08/24 12:19:01 1.71
> +++ readwrite.c 2001/08/28 16:19:02
> @@ -137,16 +137,17 @@
> }
> while (rv == 0 && size > 0) {
> if (thefile->bufpos >= thefile->dataRead) {
> - thefile->dataRead = read(thefile->filedes, thefile->buffer,
> APR_FILE_BUFSIZE);
> - if (thefile->dataRead == 0) {
> + int bytesread = read(thefile->filedes, thefile->buffer,
> APR_FILE_BUFSIZE);
> + if (bytesread == 0) {
> thefile->eof_hit = TRUE;
> rv = APR_EOF;
> break;
> }
> - else if (thefile->dataRead == -1) {
> + else if (bytesread == -1) {
> rv = errno;
> break;
> }
> + thefile->dataRead = bytesread;
> thefile->filePtr += thefile->dataRead;
> thefile->bufpos = 0;
> }
I just started playing with /error/HTTP_NOT_FOUND.html.var at
OtherBill's suggestion. Even with this patch, the seek back to the end
of the de body is not going to the right place.
gotta read some code...
---
Jeff Trawick | [EMAIL PROTECTED] | PGP public key at web site:
http://www.geocities.com/SiliconValley/Park/9289/
Born in Roswell... married an alien...