On Wed, May 04, 2011 at 02:00:33PM +0200, Sorin Manolache wrote:
> 
> I didn't mean that I'm really clueless. I trawled through the apache
> sources quite extensively and I decided to do it. And there's a
> commercial/financial stake in my case too.
> 
> If you look at mod_proxy's sources, there're 4 places in which r->main
> is checked, two in ap_proxy_http_request, one in
> ap_proxy_backend_broke and one in mod_proxy_ajp.c
> 
> In the first place, If-Match, If-None-Match, If-Range,
> If-Modified-Since, If-Unmodified-Since are not passed through in the
> subrequest.
> 
> In the second place, for subrequests:
> 
> *) the connection is marked to be closed after the request
> *) Content-Length and Transfer-Encoding are removed
> *) the main request body, if any, is not forwarded to the subrequest's 
> backend.
> 
> So if you set subreq->main to NULL you won't have the effects listed above.
> 
> In ap_proxy_backend_broke, if r is a subrequest and the backend broke,
> the main request response is marked as non-cacheable.
> 
> I didn't look into mod_proxy_ajp.c.

Yes, but what makes me feel quite uneasy is the fact that both your
solution as well as mine rely on "internal" knowledge and assumptions
build on that. From a programmers point of view this is o.k. in an open
source implementation but this creates administrative nightmares ...
What happens iff the programmers of mod_proxy decide to change their
internal processing? After all, line  426 ff. in mod_proxy.c aren't part
of a published API. So, maybe years after installing your fine module,
an inocent software update breaks it ... 8-/

I guess an exported mod_proxy function to fetch metadata would be a nice 
thing to have.

 Cheers, RalfD


> Sorin

Reply via email to