Allen,
The test above the block of code... (apr _file_flags_get(fd) & APR_SENDFILE_ENABLED)
should be false... If you look at
the code in Win32's apr_file_open() you will notice the case
ELSE_WIN_OS_IS_ANSI causes us to reset the ENABLED bit.
I'm much more concerned why that flag isn't reset on Win32
than hacking in the quick-fix below.
Bill
At 01:09 PM 1/10/2003, you wrote:
>Without this I believe Win98/ME are broken
>on HEAD and APACHE_2_0_BRANCH. OK to commit?
>
>Allan
>
>Index: core.c
>===
>RCS file: /home/cvs/httpd-2.0/server/core.c,v
>retrieving revision 1.225.2.1
>diff -u -d -b -r1.225.2.1 core.c
>--- core.c 9 Jan 2003 16:27:25 - 1.225.2.1
>+++ core.c 10 Jan 2003 17:46:16 -
>@@ -3972,6 +3972,11 @@
> sent */
> flags); /* apr_sendfile flags*/
>
>+if (APR_ENOTIMPL == rv) {
>+rv = emulate_sendfile(net, fd, &hdtr, foffset, flen,
>+ &bytes_sent);
>+}
>+
>if (logio_add_bytes_out && bytes_sent > 0)
>logio_add_bytes_out(c, bytes_sent);
>}
>
>
>
>
>
>Index: core.c
>===
>RCS file: /home/cvs/httpd-2.0/server/core.c,v
>retrieving revision 1.225.2.1
>diff -u -d -b -r1.225.2.1 core.c
>--- core.c 9 Jan 2003 16:27:25 - 1.225.2.1
>+++ core.c 10 Jan 2003 17:46:16 -
>@@ -3972,6 +3972,11 @@
>sent */
> flags); /* apr_sendfile flags*/
>
>+if (APR_ENOTIMPL == rv) {
>+rv = emulate_sendfile(net, fd, &hdtr, foffset, flen,
>+ &bytes_sent);
>+}
>+
> if (logio_add_bytes_out && bytes_sent > 0)
> logio_add_bytes_out(c, bytes_sent);
> }