[ 
https://issues.apache.org/jira/browse/TS-3663?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sudheer Vinukonda updated TS-3663:
----------------------------------
    Summary: Enhance redirect follow to allow storing each intermediate 
redirect responses  (was: Clean up cache key manipulations, unnecessary cache 
read/writes during redirect follow)

> Enhance redirect follow to allow storing each intermediate redirect responses
> -----------------------------------------------------------------------------
>
>                 Key: TS-3663
>                 URL: https://issues.apache.org/jira/browse/TS-3663
>             Project: Traffic Server
>          Issue Type: Improvement
>          Components: HTTP
>            Reporter: Sudheer Vinukonda
>            Assignee: Sudheer Vinukonda
>
> This is a follow up jira to TS-3661 and TS-3652.
> Basically, TS stores the final (2xx or any other status that is cacheable) 
> response after all the redirect follow attempts against the original cache 
> key (i.e remapped url from the client url or a modified cache key via API). 
> All the intermediate 3xx responses are never stored in the cache. But, 
> there's a lot of confusing/misleading code that tries to build a new cache 
> key with the Location header and tries to read/write the 3xx responses. All 
> these read/writes fail, since, the cache_sm for the original key (remapped 
> client request url or modified API key) still is open.
> Below are some snippets of code that are completely useless and should be 
> removed
> https://github.com/apache/trafficserver/blob/master/proxy/http/HttpSM.cc#L4450
> https://github.com/apache/trafficserver/blob/master/proxy/http/HttpSM.cc#L4350
> {code}
>     if (t_state.redirect_info.redirect_in_process) {
>       o_url = &(t_state.redirect_info.original_url);
>       ink_assert(o_url->valid());
>       restore_client_request = true;
>       s_url = o_url;
>     } else {
>     //......
> {code}
> {code}
>    if (t_state.redirect_info.redirect_in_process)
>     c_url = t_state.hdr_info.client_request.url_get();
>   else
> //....
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to