You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@trafficserver.apache.org by Igor Galić <i....@brainsware.org> on 2013/11/05 22:42:45 UTC

Re: git commit: TS-2178: Disable client side keep alive if server is not and using client 4-tuple


----- Original Message -----
> Updated Branches:
>   refs/heads/master 80734a8d6 -> 948df744d
> 
> 
> TS-2178: Disable client side keep alive if server is not and using client
> 4-tuple
> 
> 
> Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
> Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/948df744
> Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/948df744
> Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/948df744
> 
> Branch: refs/heads/master
> Commit: 948df744d1e64f56daa37e46320b05460da6cb28
> Parents: 80734a8
> Author: Alan M. Carroll <am...@network-geographics.com>
> Authored: Sat Nov 2 19:52:04 2013 -0500
> Committer: Alan M. Carroll <am...@network-geographics.com>
> Committed: Sat Nov 2 19:52:04 2013 -0500
> 
> ----------------------------------------------------------------------
>  proxy/http/HttpTransact.cc | 7 +++++++
>  1 file changed, 7 insertions(+)
> ----------------------------------------------------------------------
> 
> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/948df744/proxy/http/HttpTransact.cc
> ----------------------------------------------------------------------
> diff --git a/proxy/http/HttpTransact.cc b/proxy/http/HttpTransact.cc
> index de4052a..a0fb53c 100644
> --- a/proxy/http/HttpTransact.cc
> +++ b/proxy/http/HttpTransact.cc
> @@ -5580,8 +5580,15 @@
> HttpTransact::initialize_state_variables_from_response(State* s, HTTPHdr*
> incomi
>    if (s->current.server->keep_alive == HTTP_KEEPALIVE) {
>      if (!s->cop_test_page)
>        DebugTxn("http_hdrs", "[initialize_state_variables_from_response]"
>        "Server is keep-alive.");
> +  } else if (s->state_machine->ua_session &&
> s->state_machine->ua_session->f_outbound_transparent &&
> s->state_machine->t_state.http_config_param->use_client_source_port) {
> +    /* If we are reusing the client<->ATS 4-tuple for ATS<->server then if
> the server side is closed, we can't
> +       re-open it because the 4-tuple may still be in the processing of

processing -> process

> shutting down. So if the server isn't
> +       keep alive we must turn that off for the client as well.
> +    */
> +    s->state_machine->t_state.client_info.keep_alive = HTTP_NO_KEEPALIVE;
>    }
>  
> +
>    HTTPStatus status_code = incoming_response->status_get();
>    if (is_response_body_precluded(status_code, s->method)) {
>      s->hdr_info.response_content_length = 0;
> 
> 

-- 
Igor Galić

Tel: +43 (0) 664 886 22 883
Mail: i.galic@brainsware.org
URL: http://brainsware.org/
GPG: 8716 7A9F 989B ABD5 100F  4008 F266 55D6 2998 1641