On 6/25/20 2:16 PM, Yann Ylavic wrote:
> On Thu, Jun 25, 2020 at 1:27 PM Ruediger Pluem <[email protected]> wrote:
>>
>> On 6/25/20 12:13 PM, Yann Ylavic wrote:
>>> Index: modules/proxy/mod_proxy.c
>>> ===================================================================
>>> --- modules/proxy/mod_proxy.c (revision 1879145)
>>> +++ modules/proxy/mod_proxy.c (working copy)
>>
>>> @@ -987,10 +991,10 @@ PROXY_DECLARE(int) ap_proxy_trans_match(request_re
>>>                        "URI path '%s' matches proxy handler '%s'", r->uri,
>>>                        found);
>>>
>>> -        return OK;
>>> +        return servlet ? DONE : OK;
>>
>> Why setting it to DONE in the servlet case? Wouldn't that cause 
>> ap_process_request_internal to be left early?
> 
> No, ap_process_request_internal() would just skip r->uri decoding (we
> are in pre_trans hook here, since mapping=servlet only happens there).
> Anyway, it's an orthogonal change sorry, maybe we still want uri
> decoding for directory/location walk in the servlet case, but since
> this patch actually modifies r->uri (while other proxy mappings do
> not), I thought it could be the final transformation (that's DONE
> returned from pre_trans).

Sorry, but I am still struggling: This is from server/request.c starting line 
233

233        access_status = ap_run_pre_translate_name(r);
234        if (access_status != OK && access_status != DECLINED) {
235            return access_status;
236        }

In case of a successful match of a proxy mapping with servlet mapping enabled 
access_status would be DONE and we leave
ap_process_request_internal via the the return in line 235


Regards

RĂ¼diger

Reply via email to