On 12/27/2008 04:07 PM, André Malo wrote:
> * Ruediger Pluem wrote:
>
>> On 12/26/2008 10:41 PM, [email protected] wrote:
>>> URL: http://svn.apache.org/viewvc?rev=729538&view=rev
>> Hm. Why this rather complex approach with the request_status hook?
>> Why not doing the subrequest here or even better just inserting the file
>> buckets into the brigade right here and be done?
>
> The whole point of the sendfile stuff is to free the backend socket as early
> as possible and leave the rest to the apache. So I'm going out of the proxy
> loop and handle everything in the request status hook, which runs after the
> cleanup.
For freeing the backend socket it is IMHO possible to call
ap_proxy_release_connection first and do the subrequest run afterwards in
scgi_handler. This avoids the need for using the request_status hook which
makes the code IMHO more complex then needed.
>
> Also I don't want to duplicate the file delivery logic from core (including
> sendfile, mmap etc), so putting file buckets myself into the stream sounds
> not like the way to go.
Hm, there isn't that much basic logic to duplicate, basicly
e = apr_brigade_insert_file(bb, fd, 0, r->finfo.size, r->pool);
#if APR_HAS_MMAP
if (d->enable_mmap == ENABLE_MMAP_OFF) {
(void)apr_bucket_file_enable_mmap(e, 0);
}
#endif
but of course the default handler does more and that might be wanted, so running
the subrequest makes sense in this case.
Regards
Rüdiger