dev  

Re: sendfile in darwin

Jim Jagielski
Fri, 09 May 2008 05:44:05 -0700

Yeah... both trunk and 1.3 do not handle the case where
the writing of the headers/footers are quite correct with
handling that case (and partial writes). My other version
(which uses apr_socket_sendv is much better.

I think I'll go ahead and commit.

On May 8, 2008, at 7:49 PM, Roy T. Fielding wrote:

On May 8, 2008, at 1:07 PM, Jim Jagielski wrote:

Can anyone else confirm that r654186 (for apr-trunk) and
r654186 (for apr-1.3) fixes sendfile to work under Darwin?

In particular, both the perl-test framework for httpd as well
as APR's test suite (and test/sendfile ....) pass for me now.

I looked at trunk yesterday and found that the writev's are
not properly handling EAGAIN/EINTR -- they assume that if
anything is sent then the entire header/trailer is sent.
The iovec needs to be checked for more bytes than rv and
the start pointer moved forward so that the next loop
will try again (before setting sent_headers).

But then I tried to fix a small bug in ab.c and got stuck
in a tar pit...

....Roy